|
ATLAS Offline Software
|
Go to the documentation of this file.
5 #ifndef TPTOPLEVELTPCNVBASE_H
6 #define TPTOPLEVELTPCNVBASE_H
90 convIdMap_t::const_iterator iter =
m_convIdMap.find(
ref.typeID() );
CONVERTER_BASE * findConverter(const std::type_info &objTypeInfo) const
Find converter for a given C++ type info.
ITPConverter * converterForType(const std::type_info &info) const
Find and return a TP converter for a given C++ type info.
virtual void addExtTPConverterForReading(ITPConverter *cnv)
add extending TP converter to this top level converter - to the list consulted when reading only.
virtual const void * getTLPersObjectAsVoid() const =0
virtual unsigned short getConverterID()=0
virtual void addTPConvertersForReadingTo(TopLevelTPCnvBase *dest)
copy all extending converters from this top level converter to "dest" top level converter - for readi...
virtual void createTLPersObject()=0
Create persistent object - the converter keeps it.
virtual TPCnvTokenList_p1 * getTokenListVarFrom(void *persObj)=0
Return the list of tokens to the objects extending the object NOT owned by this converter.
virtual void deleteTLPersObject()=0
Delete the persistent object owned by the converter.
bool hasConvertersFrom(TopLevelTPCnvBase *cnv)
Check if TP converters from a given top-level converter were already registered in this converter.
ITPConverter * converterForRef(const TPObjRef &ref) const
Find and return a TP converter for persistent type referenced by ref.
std::set< TopLevelTPCnvBase * > m_registeredTLConverters
Set top-level converters from which elemental TP converters were registered.
void rememberConverter(TopLevelTPCnvBase *cnv)
Remember that elemental TP converters from the given top-level converter are already registered.
virtual void addTPConverter(ITPConverter *cnv)
Add a TP converter to this top level converter.
virtual void addTPConverterForReading(ITPConverter *cnv)
Add a TP converter to this top level converter but only for reading.
virtual void setTLPersObject(void *persObj)=0
Take ownership of the persistent object.
virtual void clearTLPersObject()=0
Discard the persistent object.
unsigned m_typeIDCount
Counter used to create typed IDs used in the transient Ref.
virtual ~TopLevelTPCnvBase()
virtual void addTPConvertersTo(TopLevelTPCnvBase *dest)
copy all extending converters from this top level converter to "dest" top level converter
TPConverterTypeMap< ITPConverter > m_converters
Map of elemental TP converters indexed by transient typeid - used for writing.
Base class for top-level TP converters.
virtual void * getTLPersObjectAsVoid()=0
const boost::regex ref(r_ef)
convIdMap_t m_convIdMap
Map of elemental TP converters indexed by their ID - used for reading.
virtual void addTPConverterForWriting(ITPConverter *cnv)
add TP converter to the list of converters consulted when writing - internal method.
std::map< unsigned, ITPConverter * > convIdMap_t
virtual TPCnvTokenList_p1 * getTokenListVar()=0
Return the list of tokens to the objects extending the object owned by this converter.
virtual bool hasTLPersObject() const =0
Returns true if the converter has a persistent object.