12#ifndef ROOT_TListOfDataMembers
13#define ROOT_TListOfDataMembers
59 template<
class DataMemberList>
63 for (
auto * dataMember : dmlist)
unsigned long long ULong64_t
#define ClassDef(name, id)
TClass instances represent classes, structs and namespaces in the ROOT type system.
All ROOT classes may have RTTI (run time type identification) support added.
This class defines an abstract interface that must be implemented by all classes that contain diction...
EMemberSelection
Kinds of members to include in lists.
This class stores a (key,value) pair using an external hash.
THashList implements a hybrid collection class consisting of a hash table and a list to store TObject...
TObject * FindObject(const char *name) const
Find object using its name.
A collection of TDataMember objects designed for fast access given a DeclId_t and for keep track of T...
void AddAt(TObject *obj, Int_t idx)
Insert object at location idx in the list.
TDictionary::DeclId_t DeclId_t
void AddBefore(const TObject *before, TObject *obj)
Insert object before object before in the list.
TDictionary * Find(DeclId_t id) const
Return (after creating it if necessary) the TDataMember describing the data member corresponding to t...
void SetClass(TClass *cl)
void Update(TDictionary *member)
Move the member or data member to the expect set of list.
TDictionary::EMemberSelection fSelection
Mark whether Load was executed.
void RecursiveRemove(TObject *obj)
Remove object from this collection and recursively remove the object from all other objects (and coll...
ULong64_t fLastLoadMarker
Holder of TDataMember for unloaded DataMembers.
void AddLast(TObject *obj)
Add object at the end of the list.
~TListOfDataMembers()
Destructor.
std::atomic< bool > fIsLoaded
Represent interpreter state when we last did a full load.
void AddAfter(const TObject *after, TObject *obj)
Insert object after object after in the list.
TListOfDataMembers(const TListOfDataMembers &)=delete
Whether the list should contain regular data members or only using decls or both.
TObject * Remove(TObject *obj)
Remove object from the list.
TExMap * fIds
Context of this list. Not owned.
TListOfDataMembers & operator=(const TListOfDataMembers &)=delete
void AddFirst(TObject *obj)
Add object at the beginning of the list.
TListOfDataMembers(DataMemberList &dmlist)
Construct from a generic collection of data members objects.
void UnmapObject(TObject *obj)
Remove a pair<id, object> from the map of data members and their ids.
virtual void Clear(Option_t *option)
Remove all objects from the list.
virtual void Delete(Option_t *option="")
Delete all TDataMember object files.
TClass * GetClass() const
void MapObject(TObject *obj)
Add a pair<id, object> to the map of data members and their ids.
TListOfDataMembers(TClass *cl, TDictionary::EMemberSelection selection)
Constructor, possibly for all members of a class (or globals).
void Unload()
Mark 'all func' as being unloaded.
THashList * fUnloaded
Map from DeclId_t to TDataMember*.
virtual TObject * FindObject(const char *name) const
Specialize FindObject to do search for the a data member just by name or create it if its not already...
TDictionary * Get(DeclId_t id)
Return (after creating it if necessary) the TDataMember describing the data member corresponding to t...
void Load()
Load all the DataMembers known to the interpreter for the scope 'fClass' into this collection.
virtual void Add(TObject *obj)
Wrapper around a TObject so it can be stored in a TList.
Mother of all ROOT objects.