#include <AthenaPoolCnvTPExtension.h>
Inherits AthenaConverterTLPExtension.
Inherited by T_AthenaPoolExtendingCnv< InDetTrack, InDetTrack_PERS >, T_AthenaPoolExtendingCnv< TPCnv::MuonMeasurements, MuonMeasurements_PERS >, T_AthenaPoolExtendingCnv< JetTagInfo, Analysis::JetTagInfo_tlp3 >, T_AthenaPoolExtendingCnv< TPCnv::MuonCaloEnergies, MuonCaloEnergies_PERS >, T_AthenaPoolExtendingCnv< MVFVxContainer, MVFVxContainer_PERS >, JetCollectionCnv, SegmentCollectionCnv, T_AthenaPoolExtendingCnv< TRANS, PERS >, TrackCollectionCnv, and VxContainerCnv.
Definition at line 14 of file AthenaPoolCnvTPExtension.h.
◆ extCnvMap_t
◆ extCnvMapMap_t
◆ AthenaPoolCnvTPExtension()
| AthenaPoolCnvTPExtension::AthenaPoolCnvTPExtension |
( |
| ) |
|
|
inline |
◆ clone()
◆ deletePersistentObjects()
| void AthenaConverterTLPExtension::deletePersistentObjects |
( |
| ) |
|
|
virtualinherited |
Delete persistent objects held by attached extending converters (used mainly in case of abort)
Definition at line 148 of file AthenaConverterTLPExtension.cxx.
149{
152 cnv->second->deletePersistentObjects();
153 }
156
158
159
160}
std::vector< AthenaConverterTLPExtension * > m_clonedExtendingCnvs
list of duplicated converters to delete at the end held in the original converter
virtual TopLevelTPCnvBase * getTopLevelTPCnv()=0
returns the main top-level TP converter
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 void deleteTLPersObject()=0
Delete the persistent object owned by the converter.
◆ getTopLevelTPCnv()
returns the main top-level TP converter
- To be implemented in the actual Converter implementation *
Implemented in InDetTrackCnv, JetCollectionCnv, JetTagInfoCnv, MuonCaloEnergiesCnv, MuonMeasurementsCnv, MVFVxContainerCnv, SegmentCollectionCnv, T_AthenaPoolExtendingCnv< TRANS, PERS >, T_AthenaPoolExtendingCnv< InDetTrack, InDetTrack_PERS >, T_AthenaPoolExtendingCnv< JetTagInfo, Analysis::JetTagInfo_tlp3 >, T_AthenaPoolExtendingCnv< MVFVxContainer, MVFVxContainer_PERS >, T_AthenaPoolExtendingCnv< TPCnv::MuonCaloEnergies, MuonCaloEnergies_PERS >, T_AthenaPoolExtendingCnv< TPCnv::MuonMeasurements, MuonMeasurements_PERS >, TrackCollectionCnv, and VxContainerCnv.
◆ getTopLevelTPCnvForReading()
returns the current top-level TP converter.
This converter may be different from the main one in case of schema evolution
Definition at line 100 of file AthenaConverterTLPExtension.h.
TopLevelTPCnvBase * m_TLCnvForReading
additional Top Level TP converter used only for reading tells which converter is used in case of read...
◆ getTPCnvID()
| unsigned short AthenaConverterTLPExtension::getTPCnvID |
( |
| ) |
|
|
inherited |
◆ name()
| virtual const std::string AthenaConverterTLPExtension::name |
( |
| ) |
const |
|
inlinevirtualinherited |
Get name of this converter (anything that identifies it)
- Returns
- Name of this converter
Reimplemented in T_AthenaPoolExtendingCnv< TRANS, PERS >, T_AthenaPoolExtendingCnv< InDetTrack, InDetTrack_PERS >, T_AthenaPoolExtendingCnv< JetTagInfo, Analysis::JetTagInfo_tlp3 >, T_AthenaPoolExtendingCnv< MVFVxContainer, MVFVxContainer_PERS >, T_AthenaPoolExtendingCnv< TPCnv::MuonCaloEnergies, MuonCaloEnergies_PERS >, and T_AthenaPoolExtendingCnv< TPCnv::MuonMeasurements, MuonMeasurements_PERS >.
Definition at line 85 of file AthenaConverterTLPExtension.h.
85{ return "Extended Athena TP Converter"; }
◆ needsCloning()
| virtual bool AthenaConverterTLPExtension::needsCloning |
( |
| ) |
const |
|
inlinevirtualinherited |
Find out if this converter needs to be cloned Returns true if this converter was already registered once.
Reimplemented in T_AthenaPoolExtendingCnv< TRANS, PERS >, T_AthenaPoolExtendingCnv< InDetTrack, InDetTrack_PERS >, T_AthenaPoolExtendingCnv< JetTagInfo, Analysis::JetTagInfo_tlp3 >, T_AthenaPoolExtendingCnv< MVFVxContainer, MVFVxContainer_PERS >, T_AthenaPoolExtendingCnv< TPCnv::MuonCaloEnergies, MuonCaloEnergies_PERS >, and T_AthenaPoolExtendingCnv< TPCnv::MuonMeasurements, MuonMeasurements_PERS >.
Definition at line 80 of file AthenaConverterTLPExtension.h.
◆ readExtendingObjects()
| void AthenaConverterTLPExtension::readExtendingObjects |
( |
void * | baseObj | ) |
|
|
virtualinherited |
Read all component persistent objects.
- Parameters
-
| baseObj | [IN] pointer to the principal persistent object holding the list of tokens for all component persistent objects to read |
Definition at line 99 of file AthenaConverterTLPExtension.cxx.
100{
101
104 if( tokens &&
tokens->size() ) {
105
108
110 } else {
113 throw std::runtime_error("Extending TP converter not available");
114 }
115 extendingConverters = extCnvMapIter->second;
116 }
117
118 for( TPCnvTokenList_p1::const_iterator it =
tokens->begin(); it !=
tokens->end(); ++it ) {
119 if(
it->token().size() < 36 ) {
121 err <<
"Corrupted Token in the list of extensions. Token='" <<
it->token() <<
"'"
122 <<
" CnvID=" <<
it->converterID() <<
", Token list size=" <<
tokens->size();
123 throw std::runtime_error(
err.str());
124 }
125 extCnvMap_t::const_iterator cnv = extendingConverters->find(
it->converterID() );
126 if( cnv == extendingConverters->end() ) {
128 err <<
"Extending TP converter not loaded! "
129 <<
"missing ExtCnvID=" <<
it->converterID()
130 <<
" corresponding POOL token: " <<
it->token();
131 throw std::runtime_error(
err.str());
132 }
133
134
135
136
137 cnv->second->readObject(
it->token() );
138 TopLevelTPCnvBase *extTPCnv = cnv->second->getTopLevelTPCnvForReading();
140 }
141 }
142 }
143}
extCnvMapMap_t m_extCnvMapMap
std::map< unsigned, AthenaConverterTLPExtension * > extCnvMap_t
virtual void addTPConvertersForReadingTo(TopLevelTPCnvBase *dest)
copy all extending converters from this top level converter to "dest" top level converter - for readi...
◆ readObject()
| virtual void AthenaConverterTLPExtension::readObject |
( |
const std::string & | | ) |
|
|
inlinevirtualinherited |
Read the extending object.
- Parameters
-
| token | [IN] Token of the object to read |
Reimplemented in T_AthenaPoolExtendingCnv< TRANS, PERS >, T_AthenaPoolExtendingCnv< InDetTrack, InDetTrack_PERS >, T_AthenaPoolExtendingCnv< JetTagInfo, Analysis::JetTagInfo_tlp3 >, T_AthenaPoolExtendingCnv< MVFVxContainer, MVFVxContainer_PERS >, T_AthenaPoolExtendingCnv< TPCnv::MuonCaloEnergies, MuonCaloEnergies_PERS >, and T_AthenaPoolExtendingCnv< TPCnv::MuonMeasurements, MuonMeasurements_PERS >.
Definition at line 65 of file AthenaConverterTLPExtension.h.
◆ registerExtendingCnv() [1/2]
Register extending converter (that is, another converter that will extent this converter) and all his elemental converters.
- Parameters
-
| cnv | [IN] pointer to extending Athena converter |
Reimplemented from AthenaConverterTLPExtension.
Definition at line 19 of file AthenaPoolCnvTPExtension.h.
19 {
21 }
virtual bool registerExtendingCnv(AthenaConverterTLPExtension *cnv)
Register extending converter (that is, another converter that will extent this converter) and all his...
◆ registerExtendingCnv() [2/2]
| virtual bool AthenaPoolCnvTPExtension::registerExtendingCnv |
( |
IConverter * | cnv | ) |
|
|
inlinevirtual |
Definition at line 23 of file AthenaPoolCnvTPExtension.h.
23 {
25
26 if( !extending_converter )
27 throw std::runtime_error("Attempt to register extending AthenaPool converter that does not inherit from AthenaPoolCnvTPExtension");
29 }
AthenaConverterTLPExtension()
Constructor.
AthenaPoolCnvTPExtension()
◆ resetTPCnvForReading()
| void AthenaConverterTLPExtension::resetTPCnvForReading |
( |
| ) |
|
|
inlineinherited |
Reset to 0 the TL TP converter for reading.
Prevents the use of the previous TP converter if none was set before reading the next object Called automatically after reading an object.
Definition at line 111 of file AthenaConverterTLPExtension.h.
◆ usingTPCnvForReading() [1/2]
| void AthenaConverterTLPExtension::usingTPCnvForReading |
( |
void * | cnv | ) |
|
|
protectedinherited |
Definition at line 59 of file AthenaConverterTLPExtension.cxx.
60{
62}
void usingTPCnvForReading(TopLevelTPCnvBase &cnv)
Sets top-level TP converter to be used for reading the next object.
◆ usingTPCnvForReading() [2/2]
| void AthenaPoolCnvTPExtension::usingTPCnvForReading |
( |
TopLevelTPCnvBase & | baseTLPcnv | ) |
|
|
inline |
◆ wasClonedFrom()
Remember the original converter that this one was cloned from.
- Parameters
-
| converter | [IN] the original converter |
Reimplemented in T_AthenaPoolExtendingCnv< TRANS, PERS >, T_AthenaPoolExtendingCnv< InDetTrack, InDetTrack_PERS >, T_AthenaPoolExtendingCnv< JetTagInfo, Analysis::JetTagInfo_tlp3 >, T_AthenaPoolExtendingCnv< MVFVxContainer, MVFVxContainer_PERS >, T_AthenaPoolExtendingCnv< TPCnv::MuonCaloEnergies, MuonCaloEnergies_PERS >, and T_AthenaPoolExtendingCnv< TPCnv::MuonMeasurements, MuonMeasurements_PERS >.
Definition at line 75 of file AthenaConverterTLPExtension.h.
◆ writeObject()
| virtual std::unique_ptr< const Token > AthenaConverterTLPExtension::writeObject |
( |
const std::string & | , |
|
|
const std::string & | ) |
|
inlinevirtualinherited |
Writes the extending persistent object created by this converter Called from the EXTENDED (principal) Athena converter Implemented only in EXTENDING Athena converters.
- Parameters
-
| key | [in] StoreGet object key (in APR used to determine storage container placement) Returns Token for the written object |
Reimplemented in T_AthenaPoolExtendingCnv< TRANS, PERS >, T_AthenaPoolExtendingCnv< InDetTrack, InDetTrack_PERS >, T_AthenaPoolExtendingCnv< JetTagInfo, Analysis::JetTagInfo_tlp3 >, T_AthenaPoolExtendingCnv< MVFVxContainer, MVFVxContainer_PERS >, T_AthenaPoolExtendingCnv< TPCnv::MuonCaloEnergies, MuonCaloEnergies_PERS >, and T_AthenaPoolExtendingCnv< TPCnv::MuonMeasurements, MuonMeasurements_PERS >.
Definition at line 60 of file AthenaConverterTLPExtension.h.
◆ m_clonedExtendingCnvs
◆ m_extCnvMapMap
◆ m_extendingConverters
| extCnvMap_t AthenaConverterTLPExtension::m_extendingConverters |
|
protectedinherited |
◆ m_TLCnvForReading
additional Top Level TP converter used only for reading tells which converter is used in case of reading old versions (as different versions have different converters) NOT owned byt his class
Definition at line 147 of file AthenaConverterTLPExtension.h.
The documentation for this class was generated from the following file: