ATLAS Offline Software
AthenaPoolCnvTPExtension.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef ATHENAPOOLCNVSVC_ATHENAPOOLCNV_TP_EXT_H
6 #define ATHENAPOOLCNVSVC_ATHENAPOOLCNV_TP_EXT_H
7 
10 #include "GaudiKernel/IConverter.h"
11 
12 #include <stdexcept>
13 
15 {
16 public:
18 
21  }
22 
23  virtual bool registerExtendingCnv( IConverter *cnv ) {
24  AthenaConverterTLPExtension *extending_converter = dynamic_cast<AthenaPoolCnvTPExtension*>(cnv);
25  // if the converter passed is not an extending converter, we can't do anything
26  if( !extending_converter )
27  throw std::runtime_error("Attempt to register extending AthenaPool converter that does not inherit from AthenaPoolCnvTPExtension");
28  return AthenaConverterTLPExtension::registerExtendingCnv( extending_converter );
29  }
30 
33  }
34 
35 };
36 
37 
38 #endif
39 
40 
41 
42 
43 
44 
45 
46 
47 
48 
49 
AthenaPoolCnvTPExtension::usingTPCnvForReading
void usingTPCnvForReading(TopLevelTPCnvBase &baseTLPcnv)
Definition: AthenaPoolCnvTPExtension.h:31
AthenaPoolCnvTPExtension
Definition: AthenaPoolCnvTPExtension.h:15
AthenaConverterTLPExtension.h
Extensions to AthenaConverters used to implement TP separation.
AthenaPoolCnvTPExtension::AthenaPoolCnvTPExtension
AthenaPoolCnvTPExtension()
Definition: AthenaPoolCnvTPExtension.h:17
AthenaConverterTLPExtension
This class is used to add functionality to a standard AthenaConverter.
Definition: AthenaConverterTLPExtension.h:43
AthenaPoolCnvTPExtension::registerExtendingCnv
virtual bool registerExtendingCnv(IConverter *cnv)
Definition: AthenaPoolCnvTPExtension.h:23
TopLevelTPCnvBase
Base class for top-level TP converters.
Definition: TopLevelTPCnvBase.h:32
AthenaPoolCnvTPExtension::registerExtendingCnv
virtual bool registerExtendingCnv(AthenaConverterTLPExtension *cnv)
Register extending converter (that is, another converter that will extent this converter) and all his...
Definition: AthenaPoolCnvTPExtension.h:19
TopLevelTPCnvBase.h
Defines the base class for top-level TP converters.
AthenaConverterTLPExtension::usingTPCnvForReading
void usingTPCnvForReading(TopLevelTPCnvBase &cnv)
Sets top-level TP converter to be used for reading the next object.
Definition: AthenaConverterTLPExtension.cxx:65
AthenaConverterTLPExtension::registerExtendingCnv
virtual bool registerExtendingCnv(AthenaConverterTLPExtension *cnv)
Register extending converter (that is, another converter that will extent this converter) and all his...
Definition: AthenaConverterTLPExtension.cxx:28