|
ATLAS Offline Software
|
Go to the documentation of this file.
40 const std::string
error(
"Duplicate TP converter for class ");
41 throw std::runtime_error(
error +
info.name() );
63 for( convIdMap_t::const_iterator itr =
m_convIdMap.begin();
85 for( convIdMap_t::const_iterator itr =
m_convIdMap.begin();
CONVERTER_BASE * findConverter(const std::type_info &objTypeInfo) const
Find converter for a given C++ type info.
virtual const TPObjRef::typeID_t & typeID() const =0
Return TP typeID for persistent objects produced by this converter.
virtual void addExtTPConverterForReading(ITPConverter *cnv)
add extending TP converter to this top level converter - to the list consulted when reading only.
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...
unsigned value() const
Returns the type ID as an integer.
virtual void setRuntimeTopConverter(TopLevelTPCnvBase *topConverter)=0
Set runtime top-level converter - usually it is the owning TL converter, but in case of extended obje...
bool hasConvertersFrom(TopLevelTPCnvBase *cnv)
Check if TP converters from a given top-level converter were already registered in this converter.
void rememberConverter(TopLevelTPCnvBase *cnv)
Remember that elemental TP converters from the given top-level converter are already registered.
virtual const std::type_info & transientTInfo() const =0
return C++ type id of the transient class this converter is for
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.
unsigned m_typeIDCount
Counter used to create typed IDs used in the transient Ref.
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.
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.
Defines the base class for top-level TP converters.
void addConverter(CONVERTER_BASE *converter, const std::type_info &objTypeInfo)
Add a new converter to the map.
virtual void setTopConverter(TopLevelTPCnvBase *topConverter, const TPObjRef::typeID_t &TPtypeID)=0
Set which top-level converter owns this elemental converter, and what TPtypeID was assigned to the pe...