ATLAS Offline Software
|
This class is used to add functionality to a standard AthenaConverter. More...
#include <AthenaConverterTLPExtension.h>
Public Member Functions | |
AthenaConverterTLPExtension () | |
Constructor. More... | |
virtual | ~AthenaConverterTLPExtension () |
Destructor. More... | |
virtual const Token * | writeObject (const std::string &, const std::string &) |
Writes the extending persistent object created by this converter Called from the EXTENDED (principal) Athena converter Implemented only in EXTENDING Athena converters. More... | |
virtual void | readObject (const std::string &) |
Read the extending object. More... | |
virtual AthenaConverterTLPExtension * | clone () |
Clone this Athena Converter. More... | |
virtual void | wasClonedFrom (AthenaConverterTLPExtension *) |
Remember the original converter that this one was cloned from. More... | |
virtual bool | needsCloning () const |
Find out if this converter needs to be cloned Returns true if this converter was already registered once. More... | |
virtual const std::string | name () const |
Get name of this converter (anything that identifies it) More... | |
virtual TopLevelTPCnvBase * | getTopLevelTPCnv ()=0 |
returns the main top-level TP converter More... | |
unsigned short | getTPCnvID () |
Returns the ID of the main top-level TP converter. More... | |
TopLevelTPCnvBase * | getTopLevelTPCnvForReading () |
returns the current top-level TP converter. More... | |
void | usingTPCnvForReading (TopLevelTPCnvBase &cnv) |
Sets top-level TP converter to be used for reading the next object. More... | |
void | resetTPCnvForReading () |
Reset to 0 the TL TP converter for reading. More... | |
virtual void | readExtendingObjects (void *baseObj) |
Read all component persistent objects. More... | |
virtual void | deletePersistentObjects () |
Delete persistent objects held by attached extending converters (used mainly in case of abort) More... | |
virtual bool | registerExtendingCnv (AthenaConverterTLPExtension *cnv) |
Register extending converter (that is, another converter that will extent this converter) and all his elemental converters. More... | |
Protected Types | |
typedef std::map< unsigned, AthenaConverterTLPExtension * > | extCnvMap_t |
typedef std::map< TopLevelTPCnvBase *, extCnvMap_t * > | extCnvMapMap_t |
Protected Member Functions | |
void | usingTPCnvForReading (void *cnv) |
Protected Attributes | |
extCnvMap_t | m_extendingConverters |
map of Athena converters extending this one More... | |
extCnvMapMap_t | m_extCnvMapMap |
TopLevelTPCnvBase * | m_TLCnvForReading |
additional Top Level TP converter used only for reading tells which converter is used in case of reading old versions (as different versions have different converters) NOT owned byt his class More... | |
std::vector< AthenaConverterTLPExtension * > | m_clonedExtendingCnvs |
list of duplicated converters to delete at the end held in the original converter More... | |
This class is used to add functionality to a standard AthenaConverter.
AthenaConverterTLPExtension does not work standalone and should not be used directly. T_AthenaPoolExtendingCnv, which inherits from it, is the enhanced AthenaPool converter base inteded to be used to implement new Athena converters.
AthenaConverterTLPExtension provides:
AthenaConverterTLPExtension defines interface for both extended and extending converters - some methods are implemented only in one converter type
Definition at line 42 of file AthenaConverterTLPExtension.h.
|
protected |
Definition at line 133 of file AthenaConverterTLPExtension.h.
|
protected |
Definition at line 138 of file AthenaConverterTLPExtension.h.
|
inline |
|
virtual |
|
inlinevirtual |
Returns the cloned instance
Definition at line 70 of file AthenaConverterTLPExtension.h.
|
virtual |
Delete persistent objects held by attached extending converters (used mainly in case of abort)
Definition at line 148 of file AthenaConverterTLPExtension.cxx.
|
pure virtual |
returns the main top-level TP converter
Implemented in JetCollectionCnv, TrackCollectionCnv, SegmentCollectionCnv, and VxContainerCnv.
|
inline |
returns the current top-level TP converter.
This converter may be different from the main one in case of schema evolution
Definition at line 100 of file AthenaConverterTLPExtension.h.
unsigned short AthenaConverterTLPExtension::getTPCnvID | ( | ) |
Returns the ID of the main top-level TP converter.
Definition at line 23 of file AthenaConverterTLPExtension.cxx.
|
inlinevirtual |
Get name of this converter (anything that identifies it)
Definition at line 85 of file AthenaConverterTLPExtension.h.
|
inlinevirtual |
Find out if this converter needs to be cloned Returns true if this converter was already registered once.
Definition at line 80 of file AthenaConverterTLPExtension.h.
|
virtual |
Read all component persistent objects.
baseObj | [IN] pointer to the principal persistent object holding the list of tokens for all component persistent objects to read |
Definition at line 99 of file AthenaConverterTLPExtension.cxx.
|
inlinevirtual |
Read the extending object.
token | [IN] Token of the object to read |
Definition at line 65 of file AthenaConverterTLPExtension.h.
|
virtual |
Register extending converter (that is, another converter that will extent this converter) and all his elemental converters.
cnv | [IN] pointer to extending Athena converter |
Reimplemented in AthenaPoolCnvTPExtension.
Definition at line 28 of file AthenaConverterTLPExtension.cxx.
|
inline |
Reset to 0 the TL TP converter for reading.
Prevents the use of the previous TP converter if none was set before reading the next object Called automatically after reading an object.
Definition at line 111 of file AthenaConverterTLPExtension.h.
void AthenaConverterTLPExtension::usingTPCnvForReading | ( | TopLevelTPCnvBase & | cnv | ) |
Sets top-level TP converter to be used for reading the next object.
cnv | [IN] top-level TP converter to be used for reading the next |
Definition at line 65 of file AthenaConverterTLPExtension.cxx.
|
protected |
Definition at line 59 of file AthenaConverterTLPExtension.cxx.
|
inlinevirtual |
Remember the original converter that this one was cloned from.
converter | [IN] the original converter |
Definition at line 75 of file AthenaConverterTLPExtension.h.
|
inlinevirtual |
Writes the extending persistent object created by this converter Called from the EXTENDED (principal) Athena converter Implemented only in EXTENDING Athena converters.
key | [in] StoreGet object key (in APR used to determine storage container placement) Retursn Token for the written object |
Definition at line 60 of file AthenaConverterTLPExtension.h.
|
protected |
list of duplicated converters to delete at the end held in the original converter
Definition at line 151 of file AthenaConverterTLPExtension.h.
|
protected |
Definition at line 141 of file AthenaConverterTLPExtension.h.
|
protected |
map of Athena converters extending this one
Definition at line 136 of file AthenaConverterTLPExtension.h.
|
protected |
additional Top Level TP converter used only for reading tells which converter is used in case of reading old versions (as different versions have different converters) NOT owned byt his class
Definition at line 147 of file AthenaConverterTLPExtension.h.