VHashTable


class description - source file - inheritance tree

class VHashTable : public TNamed


    public:
VHashTable VHashTable(const VHashTable&) VHashTable VHashTable(Int_t capacity, Double_t gstart = 0, Double_t gend = 1000, Int_t optcol = 5) VHashTable VHashTable() virtual void ~VHashTable() virtual void Add(Double_t filestart, Double_t fileend, Int_t firstindex, Int_t lastindex, Int_t condindex, Int_t firstgroup, Int_t lastgroup) virtual Float_t AverageCollisions() const static TClass* Class() virtual void Delete(Option_t* option) virtual void Expand(Double_t gend) Int_t GetCapacity() virtual TObjArray* GetFilesInfo(Double_t time) const virtual TObjArray* GetFilesInfoDirect(Int_t hashval) const Double_t GetGlobalEndTime() Double_t GetGlobalStartTime() Int_t GetHashValue(Double_t time) const Int_t GetHashValueExclude(Double_t time) const Int_t GetNFiles() Int_t GetSize() Double_t GetSlotBegin(Int_t hashval) const Double_t GetSlotEnd(Int_t hashval) const virtual TClass* IsA() const virtual void Print(Option_t* opt) virtual void Rehash(Int_t newCapacity, Double_t gstart, Double_t gend) virtual void SetGlobalEndTime(Double_t gend) virtual void SetGlobalStartTime(Double_t gstart) virtual void ShowMembers(TMemberInspector& insp, char* parent) virtual void Streamer(TBuffer& b) void StreamerNVirtual(TBuffer& b)

Data Members

    private:
Double_t mGlobalStartTime Start time of the database Double_t mGlobalEndTime End time of the database TObjArray** mFilesHashTable ! Time hash table of file informations Int_t mCapacity Capacity of the hash table Int_t mUsedSlots Number of used slots Int_t mSize Size (number of elements) pointed by the table Int_t mNFiles Number of files pointed by the table TObjArray* mFilesUnique Info of files entered. Unique info for each file Int_t mOptimalCollision Optimal collision rate decided by user

Class Description

                                                                      
 VHashTable                                                           
                                                                      
 Special hash table for quick frame file determination                
 Instead of generating a hash value for each stored object,           
 this table stores lists of names of frame file descriptors.          
 (The name of frame file descriptors is defined by the start time     
   of the first frame in the file)                                    
 The  hashing is done with respect to the start time of               
 the first frame in a file. Global duration represented by            
 the database is simply cut into equal portions, each file being      
 assigned to one portion. So, after the build of the database,        
 each portion contains a list of files for which the first frame      
 begins inside the given time portion.                                
 On retrieval, one asks for information on a given time and gets      
 a list of files that may contain the requested time.                 
 The average collision rate is the average number of files in each    
 slot. The optimum average collision rate is decided by the user, it  
 may not be 1. This depends on the frame seek time and is experimental
                                                                      


void Delete(Option_t*)
 Deletes all elements contained in this VHashTable

void Add(Double_t filestart, Double_t fileend, Int_t firstindex, Int_t lastindex, Int_t condindex, Int_t firstgroup, Int_t lastgroup)
 Inserts a file times in the hash table. If the file spans more than one
 slot in the table, it will be inserted in all the slots it spans.

TObjArray* GetFilesInfo(Double_t time) const
 Returns the info on files potentially containing "time"

TObjArray* GetFilesInfoDirect(Int_t hashval) const
 Returns the info on files for hash value hashval

void Print(Option_t* opt)
 Prints the content of the hash table. May be VERY long in case of
 big tables. Mainly for test. Set option to "small" if a reduced
 listing is needed. Only the first and last slots will be printed

void SetGlobalStartTime(Double_t gstart)
 Sets the start time of the hash table. Rehash if necessary

void SetGlobalEndTime(Double_t gend)
 Sets the start time of the hash table. Rehash if necessary

void Expand(Double_t gend)
 Expands the hash table. gend must be > mGlobalEndTime.
 If the capacity has to be extended more than "rehashlimit" slots,
 a rehashing is done without changing the old capacity.

void Rehash(Int_t newcapacity, Double_t gstart, Double_t gend)
 Rehash the time hash table

void Streamer(TBuffer &R__b)
 Stream an object of class VHashTable.



Inline Functions


         VHashTable VHashTable()
         VHashTable VHashTable(Int_t capacity, Double_t gstart = 0, Double_t gend = 1000, Int_t optcol = 5)
            Float_t AverageCollisions() const
              Int_t GetSize()
              Int_t GetNFiles()
              Int_t GetCapacity()
           Double_t GetGlobalStartTime()
           Double_t GetGlobalEndTime()
              Int_t GetHashValue(Double_t time) const
              Int_t GetHashValueExclude(Double_t time) const
           Double_t GetSlotBegin(Int_t hashval) const
           Double_t GetSlotEnd(Int_t hashval) const
            TClass* Class()
            TClass* IsA() const
               void ShowMembers(TMemberInspector& insp, char* parent)
               void StreamerNVirtual(TBuffer& b)
         VHashTable VHashTable(const VHashTable&)
               void ~VHashTable()
Last update: Tue Jul 1 17:28:53 2003


- ROOT page - VEGA page - Class index - Top of the page

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to , or contact with any questions or problems regarding ROOT or VEGA.