Interface for objects taking part in direct ROOT I/O. More...
#include <IAuxStoreHolder.h>
Public Types | |
enum | AuxStoreType { AST_ObjectStore = 0, AST_ContainerStore = 1 } |
Public Member Functions | |
virtual | ~IAuxStoreHolder () |
Virtual destructor to make vtable happy... | |
virtual void | setStore (IAuxStore *store)=0 |
virtual IAuxStore * | getStore () const =0 |
virtual AuxStoreType | getStoreType () const =0 |
Interface for objects taking part in direct ROOT I/O.
This interface needs to be implemented by classes that serve as auxiliary containers that we want to use in our EDM directly. It allows the I/O infrastructure to give a store object to the object implementing this interface. At that point the object given to this interface will be the one doing the ROOT I/O for the "dynamic" auxiliary variables.
Currently there's a single implementation of this, "xAODCore/AuxContainerBase.h", but we may want to have other implementations later on as well.
Type of the auxiliary store
In the xAOD EDM we use auxiliary store objects in some cases to describe a single object, and in most cases to describe a container of objects. This enumeration declares which type the object implementing this interface is.
virtual IAuxStore* SG::IAuxStoreHolder::getStore | ( | ) | const [pure virtual] |
Return the pointer to the store object currently in use
There's not much use case for this function yet, but it makes the interface complete at least.
Implemented in xAOD::AuxContainerBase, xAOD::AuxInfoBase, and xAOD::ShallowAuxContainer.
virtual AuxStoreType SG::IAuxStoreHolder::getStoreType | ( | ) | const [pure virtual] |
Return the type of the store object
Implemented in xAOD::AuxContainerBase, xAOD::AuxInfoBase, xAOD::ShallowAuxContainer, and xAOD::ShallowAuxInfo.
virtual void SG::IAuxStoreHolder::setStore | ( | IAuxStore * | store | ) | [pure virtual] |
Give an auxiliary store object to the holder object
The purpose of this function is to give an alternate store object to this object instead of the one it uses normally.
store | Pointer to an object implementing direct ROOT I/O |
Implemented in xAOD::AuxContainerBase, xAOD::AuxInfoBase, and xAOD::ShallowAuxContainer.