ATLAS Offline Software
Public Types | Public Member Functions | List of all members
SG::IAuxStoreHolder Class Referenceabstract

Interface for objects taking part in direct ROOT I/O. More...

#include <IAuxStoreHolder.h>

Inheritance diagram for SG::IAuxStoreHolder:
Collaboration diagram for SG::IAuxStoreHolder:

Public Types

enum  AuxStoreType { AST_ObjectStore = 0, AST_ContainerStore = 1 }
 Type of the auxiliary store. More...
 

Public Member Functions

virtual ~IAuxStoreHolder ()
 Virtual destructor to make vtable happy... More...
 
virtual void setStore (IAuxStore *store)=0
 Give an auxiliary store object to the holder object. More...
 
virtual IAuxStoregetStore ()=0
 Return the pointer to the store object currently in use. More...
 
virtual const IAuxStoregetStore () const =0
 
virtual AuxStoreType getStoreType () const =0
 Return the type of the store object. More...
 

Detailed Description

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.
Author
Attila Krasznahorkay Attil.nosp@m.a.Kr.nosp@m.aszna.nosp@m.hork.nosp@m.ay@ce.nosp@m.rn.c.nosp@m.h
Marcin Nowak Marci.nosp@m.n.No.nosp@m.wak@c.nosp@m.ern..nosp@m.ch
Revision
570883
Date
2013-11-16 19:47:55 +0100 (Sat, 16 Nov 2013)

Definition at line 36 of file IAuxStoreHolder.h.

Member Enumeration Documentation

◆ AuxStoreType

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.

Enumerator
AST_ObjectStore 

The store describes a single object.

AST_ContainerStore 

The store describes a container.

Definition at line 66 of file IAuxStoreHolder.h.

66  {
67  AST_ObjectStore = 0,
69  };

Constructor & Destructor Documentation

◆ ~IAuxStoreHolder()

virtual SG::IAuxStoreHolder::~IAuxStoreHolder ( )
inlinevirtual

Virtual destructor to make vtable happy...

Definition at line 40 of file IAuxStoreHolder.h.

40 {}

Member Function Documentation

◆ getStore() [1/2]

virtual const IAuxStore* SG::IAuxStoreHolder::getStore ( ) const
pure virtual

◆ getStore() [2/2]

virtual IAuxStore* SG::IAuxStoreHolder::getStore ( )
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::ShallowAuxContainer, xAOD::AuxContainerBase, xAOD::AuxInfoBase, and APRTest::AuxStore.

◆ getStoreType()

virtual AuxStoreType SG::IAuxStoreHolder::getStoreType ( ) const
pure virtual

Return the type of the store object.

See also
AuxStoreType

Implemented in xAOD::ShallowAuxContainer, xAOD::AuxContainerBase, xAOD::AuxInfoBase, APRTest::AuxStore, and xAOD::ShallowAuxInfo.

◆ setStore()

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.

Parameters
storePointer to an object implementing direct ROOT I/O

Implemented in xAOD::ShallowAuxContainer, xAOD::AuxContainerBase, and xAOD::AuxInfoBase.


The documentation for this class was generated from the following file:
SG::IAuxStoreHolder::AST_ObjectStore
@ AST_ObjectStore
The store describes a single object.
Definition: IAuxStoreHolder.h:67
SG::IAuxStoreHolder::AST_ContainerStore
@ AST_ContainerStore
The store describes a container.
Definition: IAuxStoreHolder.h:68