#ifndef ROOT_TObjectTable
#define ROOT_TObjectTable
#ifndef ROOT_TObject
#include "TObject.h"
#endif
class TClass;
class TObjectTable : public TObject {
private:
TObject **fTable;
Int_t fSize;
Int_t fTally;
Bool_t HighWaterMark();
void Expand(Int_t newsize);
Int_t FindElement(TObject *obj);
void FixCollisions(Int_t index);
private:
TObjectTable(const TObjectTable&);
TObjectTable& operator=(const TObjectTable&);
public:
TObjectTable(Int_t tableSize = 100);
~TObjectTable();
void Add(TObject *obj);
void *CheckPtrAndWarn(const char *msg, void *vp);
void Delete(Option_t *opt = "");
Int_t GetSize() const { return fSize; }
Int_t Instances() const { return fTally; }
void InstanceStatistics() const;
void Print(Option_t *option="") const;
Bool_t PtrIsValid(TObject *obj);
void Remove(TObject *obj);
void RemoveQuietly(TObject *obj);
void Statistics() { Print(); }
void Terminate();
void UpdateInstCount() const;
static void AddObj(TObject *obj);
ClassDef(TObjectTable,0)
};
inline Bool_t TObjectTable::HighWaterMark()
{ return (Bool_t) (fTally >= ((3*fSize)/4)); }
inline Bool_t TObjectTable::PtrIsValid(TObject *op)
{ return fTable[FindElement(op)] != 0; }
R__EXTERN TObjectTable *gObjectTable;
#endif
Last change: Wed Jun 25 08:50:00 2008
Last generated: 2008-06-25 08:50
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.