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