ATLAS Offline Software
Loading...
Searching...
No Matches
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{
16public:
18
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
34
35};
36
37
38#endif
39
40
41
42
43
44
45
46
47
48
49
Extensions to AthenaConverters used to implement TP separation.
Defines the base class for top-level TP converters.
void usingTPCnvForReading(TopLevelTPCnvBase &cnv)
Sets top-level TP converter to be used for reading the next object.
virtual bool registerExtendingCnv(AthenaConverterTLPExtension *cnv)
Register extending converter (that is, another converter that will extent this converter) and all his...
virtual bool registerExtendingCnv(AthenaConverterTLPExtension *cnv)
Register extending converter (that is, another converter that will extent this converter) and all his...
void usingTPCnvForReading(TopLevelTPCnvBase &baseTLPcnv)
virtual bool registerExtendingCnv(IConverter *cnv)
Base class for top-level TP converters.