ATLAS Offline Software
|
Base class for top-level TP converters. More...
#include <TopLevelTPCnvBase.h>
Public Member Functions | |
TopLevelTPCnvBase () | |
virtual | ~TopLevelTPCnvBase () |
virtual void | addTPConverter (ITPConverter *cnv) |
Add a TP converter to this top level converter. More... | |
virtual void | addTPConverterForReading (ITPConverter *cnv) |
Add a TP converter to this top level converter but only for reading. More... | |
virtual void | addExtTPConverterForReading (ITPConverter *cnv) |
add extending TP converter to this top level converter - to the list consulted when reading only. More... | |
virtual void | addTPConvertersTo (TopLevelTPCnvBase *dest) |
copy all extending converters from this top level converter to "dest" top level converter More... | |
virtual void | addTPConvertersForReadingTo (TopLevelTPCnvBase *dest) |
copy all extending converters from this top level converter to "dest" top level converter - for reading More... | |
ITPConverter * | converterForType (const std::type_info &info) const |
Find and return a TP converter for a given C++ type info. More... | |
ITPConverter * | converterForRef (const TPObjRef &ref) const |
Find and return a TP converter for persistent type referenced by ref. More... | |
virtual bool | hasTLPersObject () const =0 |
Returns true if the converter has a persistent object. More... | |
virtual void * | getTLPersObjectAsVoid ()=0 |
virtual const void * | getTLPersObjectAsVoid () const =0 |
virtual void | createTLPersObject ()=0 |
Create persistent object - the converter keeps it. More... | |
virtual void | deleteTLPersObject ()=0 |
Delete the persistent object owned by the converter. More... | |
virtual void | clearTLPersObject ()=0 |
Discard the persistent object. More... | |
virtual void | setTLPersObject (void *persObj)=0 |
Take ownership of the persistent object. More... | |
virtual TPCnvTokenList_p1 * | getTokenListVar ()=0 |
Return the list of tokens to the objects extending the object owned by this converter. More... | |
virtual TPCnvTokenList_p1 * | getTokenListVarFrom (void *persObj)=0 |
Return the list of tokens to the objects extending the object NOT owned by this converter. More... | |
virtual unsigned short | getConverterID ()=0 |
Protected Types | |
typedef std::map< unsigned, ITPConverter * > | convIdMap_t |
Protected Member Functions | |
void | rememberConverter (TopLevelTPCnvBase *cnv) |
Remember that elemental TP converters from the given top-level converter are already registered. More... | |
bool | hasConvertersFrom (TopLevelTPCnvBase *cnv) |
Check if TP converters from a given top-level converter were already registered in this converter. More... | |
Protected Attributes | |
convIdMap_t | m_convIdMap |
Map of elemental TP converters indexed by their ID - used for reading. More... | |
TPConverterTypeMap< ITPConverter > | m_converters |
Map of elemental TP converters indexed by transient typeid - used for writing. More... | |
std::set< TopLevelTPCnvBase * > | m_registeredTLConverters |
Set top-level converters from which elemental TP converters were registered. More... | |
unsigned | m_typeIDCount |
Counter used to create typed IDs used in the transient Ref. More... | |
Private Member Functions | |
virtual void | addTPConverterForWriting (ITPConverter *cnv) |
add TP converter to the list of converters consulted when writing - internal method. More... | |
Base class for top-level TP converters.
Base (not templated) class for all top-level TP converters. Provides:
Definition at line 31 of file TopLevelTPCnvBase.h.
|
protected |
Definition at line 174 of file TopLevelTPCnvBase.h.
|
inline |
Definition at line 34 of file TopLevelTPCnvBase.h.
|
inlinevirtual |
Definition at line 36 of file TopLevelTPCnvBase.h.
|
virtual |
add extending TP converter to this top level converter - to the list consulted when reading only.
cnv | [IN] the TP converter to be added |
Definition at line 47 of file TopLevelTPCnvBase.cxx.
|
virtual |
Add a TP converter to this top level converter.
cnv | [IN] the TP converter to be added |
Definition at line 11 of file TopLevelTPCnvBase.cxx.
|
virtual |
Add a TP converter to this top level converter but only for reading.
Old converters that read schema evolved objects should be added only for reading.
cnv | [IN] the TP converter to be added |
Definition at line 19 of file TopLevelTPCnvBase.cxx.
|
privatevirtual |
add TP converter to the list of converters consulted when writing - internal method.
cnv | [IN] the TP converter to be added |
Definition at line 33 of file TopLevelTPCnvBase.cxx.
|
virtual |
copy all extending converters from this top level converter to "dest" top level converter - for reading
dest | [IN] destination converter which will receive all elemental TP converters that this one has |
Definition at line 78 of file TopLevelTPCnvBase.cxx.
|
virtual |
copy all extending converters from this top level converter to "dest" top level converter
copy all TP converters to another topLevel conveter
dest | [IN] destination converter which will receive all elemental TP converters that this one has |
Definition at line 60 of file TopLevelTPCnvBase.cxx.
|
pure virtual |
Discard the persistent object.
Implemented in TopLevelTPCnvBaseP< TL_PERS >.
|
inline |
Find and return a TP converter for persistent type referenced by ref.
ref | [IN] TP reference of a persistent object |
Definition at line 89 of file TopLevelTPCnvBase.h.
|
inline |
Find and return a TP converter for a given C++ type info.
info | [IN] C++ type info reference to the transient type |
Definition at line 80 of file TopLevelTPCnvBase.h.
|
pure virtual |
Create persistent object - the converter keeps it.
Implemented in TopLevelTPCnvBaseP< TL_PERS >.
|
pure virtual |
Delete the persistent object owned by the converter.
Implemented in TopLevelTPCnvBaseP< TL_PERS >.
|
pure virtual |
Implemented in Analysis::JetTagInfoCnv_tlp3, Analysis::JetTagInfoCnv_tlp2, Analysis::JetTagInfoCnv_tlp1, TopLevelTPConverter< MAIN_CNV, TL_PERS >, V0ContainerCnv_tlp1, V0ContainerCnv_tlp2, InDetTrackCnv_tlp1, MuonMeasurementsCnv_tlp1, InDetTrackCnv_tlp2, MVFVxContainerCnv_tlp1, MuonCaloEnergyContainerCnv_tlp1, and MuonMeasurementsCnv_tlp2.
|
pure virtual |
void*
Implemented in TopLevelTPCnvBaseP< TL_PERS >.
|
pure virtual |
void*
Implemented in TopLevelTPCnvBaseP< TL_PERS >.
|
pure virtual |
Return the list of tokens to the objects extending the object owned by this converter.
This method is needed only in a conveter which has extensions. It needs to be implemented in the top-level converter by the user
Implemented in TopLevelTPCnvBaseP< TL_PERS >, TrackParticleContainerCnv_tlp1, TrackParticleContainerCnv_tlp2, VxContainerCnv_tlp1, VxContainerCnv_tlp2, TrackCollectionCnv_tlp3, TrackCollectionCnv_tlp2, TrackCollectionCnv_tlp4, TrackCollectionCnv_tlp1, SegmentCollectionCnv_tlp1, TrackParticleContainerCnv_tlp3, SegmentCollectionCnv_tlp2, TrackCollectionCnv_tlp5, SegmentCollectionCnv_tlp3, PixelClusterContainerCnv_tlp1, SCT_ClusterContainerCnv_tlp1, LayerMaterialMapCnv_tlp1, TRT_DriftCircleContainerCnv_tlp1, CscPrepDataContainerCnv_tlp1, CscStripPrepDataContainerCnv_tlp1, MdtPrepDataContainerCnv_tlp1, RpcPrepDataContainerCnv_tlp1, TgcCoinDataContainerCnv_tlp1, TgcCoinDataContainerCnv_tlp2, TgcPrepDataContainerCnv_tlp1, TgcCoinDataContainerCnv_tlp3, JetCollectionCnv_tlp2, JetCollectionCnv_tlp5, JetCollectionCnv_tlp6, and JetKeyDescriptorCollectionCnv_tlp1.
|
pure virtual |
Return the list of tokens to the objects extending the object NOT owned by this converter.
persObj | [IN] persistent object from which contains list of tokens. Passes as void* - if the type is wrong, it may crash |
Implemented in TopLevelTPCnvBaseP< TL_PERS >.
|
inlineprotected |
Check if TP converters from a given top-level converter were already registered in this converter.
cnv | [IN] top-level converter to check |
Definition at line 166 of file TopLevelTPCnvBase.h.
|
pure virtual |
Returns true
if the converter has a persistent object.
Implemented in TopLevelTPCnvBaseP< TL_PERS >.
|
inlineprotected |
Remember that elemental TP converters from the given top-level converter are already registered.
cnv | [IN] top-level TP converter - source of the elemental TP converters |
Definition at line 156 of file TopLevelTPCnvBase.h.
|
pure virtual |
Take ownership of the persistent object.
Also initialize all elemental TP converters to use that object.
persObj | [IN] the persistent object passed as void* |
Implemented in TopLevelTPCnvBaseP< TL_PERS >.
|
protected |
Map of elemental TP converters indexed by transient typeid - used for writing.
Definition at line 180 of file TopLevelTPCnvBase.h.
|
protected |
Map of elemental TP converters indexed by their ID - used for reading.
Definition at line 177 of file TopLevelTPCnvBase.h.
|
protected |
Set top-level converters from which elemental TP converters were registered.
Definition at line 184 of file TopLevelTPCnvBase.h.
|
protected |
Counter used to create typed IDs used in the transient Ref.
Definition at line 187 of file TopLevelTPCnvBase.h.