ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Database
AthenaPOOL
AthenaPoolCnvSvc
AthenaPoolCnvSvc
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
8
#include "
TPTools/AthenaConverterTLPExtension.h
"
9
#include "
TPTools/TopLevelTPCnvBase.h
"
10
#include "GaudiKernel/IConverter.h"
11
12
#include <stdexcept>
13
14
class
AthenaPoolCnvTPExtension
:
public
AthenaConverterTLPExtension
15
{
16
public
:
17
AthenaPoolCnvTPExtension
() {}
18
19
virtual
bool
registerExtendingCnv
(
AthenaConverterTLPExtension
*cnv ) {
20
return
AthenaConverterTLPExtension::registerExtendingCnv
( cnv );
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
31
void
usingTPCnvForReading
(
TopLevelTPCnvBase
&baseTLPcnv ) {
32
AthenaConverterTLPExtension::usingTPCnvForReading
( (
void
*)&baseTLPcnv );
33
}
34
35
};
36
37
38
#endif
39
40
41
42
43
44
45
46
47
48
49
AthenaConverterTLPExtension.h
Extensions to AthenaConverters used to implement TP separation.
TopLevelTPCnvBase.h
Defines the base class for top-level TP converters.
AthenaConverterTLPExtension::AthenaConverterTLPExtension
AthenaConverterTLPExtension()
Constructor.
Definition
AthenaConverterTLPExtension.h:48
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
AthenaPoolCnvTPExtension::AthenaPoolCnvTPExtension
AthenaPoolCnvTPExtension()
Definition
AthenaPoolCnvTPExtension.h:17
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
AthenaPoolCnvTPExtension::usingTPCnvForReading
void usingTPCnvForReading(TopLevelTPCnvBase &baseTLPcnv)
Definition
AthenaPoolCnvTPExtension.h:31
AthenaPoolCnvTPExtension::registerExtendingCnv
virtual bool registerExtendingCnv(IConverter *cnv)
Definition
AthenaPoolCnvTPExtension.h:23
TopLevelTPCnvBase
Base class for top-level TP converters.
Definition
TopLevelTPCnvBase.h:32
Generated on
for ATLAS Offline Software by
1.17.0