|
ATLAS Offline Software
|
Go to the documentation of this file.
5 #ifndef ATHENACONVERTER_TP_EXT_H
6 #define ATHENACONVERTER_TP_EXT_H
60 virtual const Token*
writeObject(
const std::string& ,
const std::string& ) {
return 0; }
85 virtual const std::string
name()
const {
return "Extended Athena TP Converter"; }
133 typedef std::map<unsigned, AthenaConverterTLPExtension*>
extCnvMap_t;
virtual void readObject(const std::string &)
Read the extending object.
std::map< TopLevelTPCnvBase *, extCnvMap_t * > extCnvMapMap_t
TopLevelTPCnvBase * getTopLevelTPCnvForReading()
returns the current top-level TP converter.
TopLevelTPCnvBase * m_TLCnvForReading
additional Top Level TP converter used only for reading tells which converter is used in case of read...
This class provides a token that identifies in a unique way objects on the persistent storage.
virtual bool needsCloning() const
Find out if this converter needs to be cloned Returns true if this converter was already registered o...
virtual void readExtendingObjects(void *baseObj)
Read all component persistent objects.
virtual TopLevelTPCnvBase * getTopLevelTPCnv()=0
returns the main top-level TP converter
This class is used to add functionality to a standard AthenaConverter.
AthenaConverterTLPExtension()
Constructor.
extCnvMapMap_t m_extCnvMapMap
extCnvMap_t m_extendingConverters
map of Athena converters extending this one
std::vector< AthenaConverterTLPExtension * > m_clonedExtendingCnvs
list of duplicated converters to delete at the end held in the original converter
Base class for top-level TP converters.
std::map< unsigned, AthenaConverterTLPExtension * > extCnvMap_t
virtual const std::string name() const
Get name of this converter (anything that identifies it)
virtual AthenaConverterTLPExtension * clone()
Clone this Athena Converter.
virtual ~AthenaConverterTLPExtension()
Destructor.
virtual void wasClonedFrom(AthenaConverterTLPExtension *)
Remember the original converter that this one was cloned from.
unsigned short getTPCnvID()
Returns the ID of the main top-level TP converter.
virtual void deletePersistentObjects()
Delete persistent objects held by attached extending converters (used mainly in case of abort)
void resetTPCnvForReading()
Reset to 0 the TL TP converter for reading.
void usingTPCnvForReading(TopLevelTPCnvBase &cnv)
Sets top-level TP converter to be used for reading the next object.
virtual bool registerExtendingCnv(AthenaConverterTLPExtension *cnv)
Register extending converter (that is, another converter that will extent this converter) and all his...
virtual const Token * writeObject(const std::string &, const std::string &)
Writes the extending persistent object created by this converter Called from the EXTENDED (principal)...