library: libCore #include "TObjectTable.h" |
TObjectTable
class description - source file - inheritance tree (.pdf)
private:
void Expand(Int_t newsize)
Int_t FindElement(TObject* obj)
void FixCollisions(Int_t index)
Bool_t HighWaterMark()
public:
TObjectTable(Int_t tableSize = 100)
TObjectTable(const TObjectTable&)
~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
TObjectTable& operator=(const TObjectTable&)
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
private:
TObject** fTable
Int_t fSize
Int_t fTally
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 *option) const
Print the object table.
If option ="all" prints the list of all objects with the format
object number, pointer, class name, object name
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(const TObjectTable&)
TObjectTable& operator=(const TObjectTable&)
Author: Fons Rademakers 11/08/95
Last update: root/cont:$Name: $:$Id: TObjectTable.cxx,v 1.6 2001/10/18 13:07:28 rdm Exp $
Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
ROOT page - Class index - Class Hierarchy - 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.