12 #ifndef ROOT_TListOfDataMembers
13 #define ROOT_TListOfDataMembers
32 class TListOfDataMembers :
public THashList
40 ULong64_t fLastLoadMarker;
42 TListOfDataMembers(
const TListOfDataMembers&);
43 TListOfDataMembers& operator=(
const TListOfDataMembers&);
45 void MapObject(TObject *obj);
46 void UnmapObject(TObject *obj);
49 typedef TDictionary::DeclId_t DeclId_t;
51 TListOfDataMembers(TClass *cl = 0);
53 template<
class DataMemberList>
54 TListOfDataMembers(DataMemberList & dmlist) :
55 fClass(0),fIds(0),fUnloaded(0),
56 fIsLoaded(kTRUE), fLastLoadMarker(0)
58 for (
auto * dataMember : dmlist)
62 ~TListOfDataMembers();
64 virtual void Clear(Option_t *option);
65 virtual void Delete(Option_t *option=
"");
67 using THashList::FindObject;
68 virtual TObject *FindObject(
const char *name)
const;
70 TDictionary *Find(DeclId_t
id)
const;
71 TDictionary *Get(DeclId_t
id);
72 TDictionary *Get(DataMemberInfo_t *info,
bool skipChecks=kFALSE);
74 Bool_t IsLoaded()
const {
return fIsLoaded; }
75 void AddFirst(TObject *obj);
76 void AddFirst(TObject *obj, Option_t *opt);
77 void AddLast(TObject *obj);
78 void AddLast(TObject *obj, Option_t *opt);
79 void AddAt(TObject *obj, Int_t idx);
80 void AddAfter(
const TObject *after, TObject *obj);
81 void AddAfter(TObjLink *after, TObject *obj);
82 void AddBefore(
const TObject *before, TObject *obj);
83 void AddBefore(TObjLink *before, TObject *obj);
85 TClass *GetClass()
const {
return fClass; }
86 void SetClass(TClass* cl) { fClass = cl; }
87 void Update(TDictionary *member);
89 void RecursiveRemove(TObject *obj);
90 TObject *Remove(TObject *obj);
91 TObject *Remove(TObjLink *lnk);
95 void Unload(TDictionary *member);
97 ClassDef(TListOfDataMembers,2);
100 #endif // ROOT_TListOfDataMembers