12 #ifndef ROOT_TRefTable
13 #define ROOT_TRefTable
35 class TRefTable :
public TObject {
45 TProcessID *fUIDContext;
49 std::vector<std::string> fProcessGUIDs;
50 std::vector<Int_t> fMapPIDtoInternal;
51 static TRefTable *fgRefTable;
53 Int_t AddInternalIdxForPID(TProcessID* procid);
54 virtual Int_t ExpandForIID(Int_t iid, Int_t newsize);
55 void ExpandPIDs(Int_t numpids);
56 Int_t FindPIDGUID(
const char* guid)
const;
57 Int_t GetInternalIdxForPID(TProcessID* procid)
const;
58 Int_t GetInternalIdxForPID(Int_t pid)
const;
63 kHaveWarnedReadingOld = BIT(14)
67 TRefTable(TObject *owner, Int_t size);
69 virtual Int_t Add(Int_t uid, TProcessID* context = 0);
70 virtual void Clear(Option_t * =
"");
71 virtual Int_t Expand(Int_t pid, Int_t newsize);
72 virtual void FillBuffer(TBuffer &b);
73 static TRefTable *GetRefTable();
74 Int_t GetNumPIDs()
const {
return fNumPIDs;}
75 Int_t GetSize(Int_t pid)
const {
return fAllocSize[GetInternalIdxForPID(pid)];}
76 Int_t GetN(Int_t pid)
const {
return fN[GetInternalIdxForPID(pid)];}
77 TObject *GetOwner()
const {
return fOwner;}
78 TObject *GetParent(Int_t uid, TProcessID* context = 0)
const;
79 TObjArray *GetParents()
const {
return fParents;}
80 UInt_t GetUID()
const {
return fUID;}
81 TProcessID *GetUIDContext()
const {
return fUIDContext;}
82 virtual Bool_t Notify();
83 virtual void ReadBuffer(TBuffer &b);
84 virtual void Reset(Option_t * =
"");
85 virtual Int_t SetParent(
const TObject* parent, Int_t branchID);
86 static void SetRefTable(TRefTable *table);
87 virtual void SetUID(UInt_t uid, TProcessID* context = 0) {fUID=uid; fUIDContext = context;}