12 #ifndef ROOT_TObjectTable
13 #define ROOT_TObjectTable
35 class TObjectTable :
public TObject {
42 Bool_t HighWaterMark();
43 void Expand(Int_t newsize);
44 Int_t FindElement(TObject *obj);
45 void FixCollisions(Int_t index);
48 TObjectTable(
const TObjectTable&);
49 TObjectTable& operator=(
const TObjectTable&);
52 TObjectTable(Int_t tableSize = 100);
55 void Add(TObject *obj);
56 void *CheckPtrAndWarn(
const char *msg,
void *vp);
57 void Delete(Option_t *opt =
"");
58 Int_t GetSize()
const {
return fSize; }
59 Int_t Instances()
const {
return fTally; }
60 void InstanceStatistics()
const;
61 void Print(Option_t *option=
"")
const;
62 Bool_t PtrIsValid(TObject *obj);
63 void Remove(TObject *obj);
64 void RemoveQuietly(TObject *obj);
65 void Statistics() { Print(); }
67 void UpdateInstCount()
const;
69 static void AddObj(TObject *obj);
71 ClassDef(TObjectTable,0)
75 inline Bool_t TObjectTable::HighWaterMark()
76 {
return (Bool_t) (fTally >= ((3*fSize)/4)); }
78 inline Bool_t TObjectTable::PtrIsValid(TObject *op)
79 {
return fTable[FindElement(op)] != 0; }
82 R__EXTERN TObjectTable *gObjectTable;