TObjectTable


class description - source file - inheritance tree

class TObjectTable : public TObject

    private:
void Expand(Int_t newsize) Int_t FindElement(TObject* obj) void FixCollisions(Int_t index) Bool_t HighWaterMark() protected:
public:
TObjectTable TObjectTable(Int_t tableSize = 100) TObjectTable TObjectTable(TObjectTable&) virtual void ~TObjectTable() void Add(TObject* obj) static void AddObj(TObject* obj) void* CheckPtrAndWarn(const char* msg, void* vp) static TClass* Class() virtual void Delete(Option_t* opt) Int_t GetSize() const Int_t Instances() const void InstanceStatistics() const virtual TClass* IsA() const virtual void Print(Option_t* option) const Bool_t PtrIsValid(TObject* obj) void Remove(TObject* obj) void RemoveQuietly(TObject* obj) virtual void ShowMembers(TMemberInspector& insp, char* parent) void Statistics() virtual void Streamer(TBuffer& b) void StreamerNVirtual(TBuffer& b) void Terminate() void UpdateInstCount() const

Data Members

private:
TObject** fTable Int_t fSize Int_t fTally protected:
public:

Class Description

                                                                      
 This class registers all instances of TObject and its derived        
 classes in a hash table. The Add() and Remove() members are called   
 from the TObject ctor and dtor, repectively. Using the Print()       
 member one can see all currently active objects in the system.       
 Using the resource (in .rootrc): Root.ObjectStat one can toggle this 
 feature on or off.                                                   
 Using the compile option R__NOSTATS one can de-active this feature   
 for the entire system (for maximum performance in highly time        
 critical applications).                                              
                                                                      
 The following output has been produced in a ROOT interactive session
 via the command gObjectTable->Print()
   class                     cnt    on heap     size    total size    heap size
   ============================================================================
   TKey                        4          4       72           288          288
   TClass                     84         84       80          6720         6720
   TDataMember               276        276       24          6624         6624
   TObject                    11         11       12           132          132
   TMethod                  1974       1974       64        126336       126336
   TDataType                  34         34       56          1904         1904
   TList                    2328       2328       36         83808        83808
   TH1F                        1          1      448           448          448
   TText                    2688       2688       56        150528       150528
   TGaxis                      1          0      120           120            0
   TAxis                       6          3       88           528          264
   TBox                       57         57       52          2964         2964
   TLine                     118        118       40          4720         4720
   TWbox                       1          1       56            56           56
   TArrow                      1          1       64            64           64
   TPaveText                  59         59      124          7316         7316
   TPave                       1          1       92            92           92
   TFile                       1          1      136           136          136
   TCanvas                     3          3      444          1332         1332
   TPad                        1          1      312           312          312
   TContextMenu                3          3       48           144          144
   TMethodArg               2166       2166       44         95304        95304
   TPaveLabel                  1          1      120           120          120
   THtml                       1          1       32            32           32
   TROOT                       1          0      208           208            0
   TApplication                1          1       28            28           28
   TFileHandler                1          1       20            20           20
   TColor                    163        163       40          6520         6520
   TStyle                      1          1      364           364          364
   TRealData                 117        117       28          3276         3276
   TBaseClass                 88         88       36          3168         3168
   THashList                   5          5       40           200          200
   THashTable                  5          5       36           180          180
   TGeometry                   1          1       64            64           64
   TLink                       7          7       60           420          420
   TPostScript                 1          1      764           764          764
   TMinuit                     1          1      792           792          792
   TStopwatch                  1          0       56            56            0
   TRootGuiFactory             1          1       28            28           28
   TGX11                       1          1      172           172          172
   TUnixSystem                 1          1      252           252          252
   TSignalHandler              1          1       20            20           20
   TOrdCollection              3          3       40           120          120
   TEnv                        1          1       24            24           24
   TCint                       1          1      208           208          208
   TBenchmark                  1          1       52            52           52
   TClassTable                 1          1       12            12           12
   TObjectTable                1          1       12            12           12
   ----------------------------------------------------------------------------
   Total:                  10225      10219     5976        506988       506340
   ============================================================================


TObjectTable(Int_t tableSize)
 Create an object table.

~TObjectTable()
 Delete TObjectTable.

void Print(Option_t *) const
 Print the object table.

void Add(TObject *op)
 Add an object to the object table.

void AddObj(TObject *op)
 Add an object to the global object table gObjectTable. If the global
 table does not exist create it first. This member function may only
 be used by TObject::TObject. Use Add() to add objects to any other
 TObjectTable object. This is a static function.

void Delete(Option_t *)
 Delete all objects stored in the TObjectTable.

void Remove(TObject *op)
 Remove an object from the object table.

void RemoveQuietly(TObject *op)
 Remove an object from the object table. If op is 0 or not in the table
 don't complain. Currently only used by the TClonesArray dtor. Should not
 be used anywhere else, except in places where "special" allocation and
 de-allocation tricks are performed.

void Terminate()
 Deletes the object table (this static class function calls the dtor).

Int_t FindElement(TObject *op)
 Find an object in the object table. Returns the slot where to put
 the object. To test if the object is actually already in the table
 use PtrIsValid().

void FixCollisions(Int_t index)
 Rehash the object table in case an object has been removed.

void Expand(Int_t newSize)
 Expand the object table.

void InstanceStatistics() const
 Print the object table.

void UpdateInstCount() const
 Histogram all objects according to their classes.

void* CheckPtrAndWarn(const char *msg, void *vp)
 Issue a warning in case an object still appears in the table
 while it should not.



Inline Functions


              Bool_t HighWaterMark()
               Int_t GetSize() const
               Int_t Instances() const
              Bool_t PtrIsValid(TObject* obj)
                void Statistics()
             TClass* Class()
             TClass* IsA() const
                void ShowMembers(TMemberInspector& insp, char* parent)
                void Streamer(TBuffer& b)
                void StreamerNVirtual(TBuffer& b)
        TObjectTable TObjectTable(TObjectTable&)


Author: Fons Rademakers 11/08/95
Last update: root/cont:$Name: $:$Id: TObjectTable.cxx,v 1.2 2000/12/13 15:56:17 brun Exp $
Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *


ROOT 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 ROOT support, or contact the developers with any questions or problems regarding ROOT.