Definition of the extension entry interface class.
ObjectExtensions(const ObjectExtensions ©)=delete
Copy constructor.
Implementation of an object supporting arbitrary user extensions.
void * removeExtension(unsigned long long int key, bool destroy)
Remove an existing extension object from the instance.
ObjectExtensions & operator=(const ObjectExtensions ©)=delete
Assignment operator.
ObjectExtensions(const std::type_info &parent_type)
Default constructor.
void initialize()
Initialize non-persistent object containers (e.g. after loading from ROOT file)
std::map< unsigned long long int, ExtensionEntry * > extensions
The extensions object.
void move(ObjectExtensions ©)
Move extensions to target object.
virtual ~ObjectExtensions()
Default destructor.
void clear(bool destroy=true)
Clear all extensions.
void copyFrom(const std::map< unsigned long long int, ExtensionEntry * > &ext, void *arg)
Copy object extensions from another object. Hosting type must be identical!
void * addExtension(unsigned long long int key, ExtensionEntry *entry)
Add an extension object to the detector element.
void * extension(unsigned long long int key, bool alert) const
Access an existing extension object from the detector element.