ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Database
AthenaPOOL
AthenaPoolCnvSvc
AthenaPoolCnvSvc
T_AthenaPoolCnv.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#ifndef ATHENAPOOLCNVSVC_T_ATHENAPOOLCNV_H
6
#define ATHENAPOOLCNVSVC_T_ATHENAPOOLCNV_H
7
12
13
#include "
AthenaPoolCnvSvc/T_AthenaPoolCnvBase.h
"
14
#include "
AthenaPoolCnvSvc/T_AthenaPoolViewVectorCnv.h
"
15
#include "
AthenaPoolCnvSvc/T_AthenaPoolxAODCnv.h
"
16
#include "
AthenaPoolCnvSvc/T_AthenaPoolAuxContainerCnv.h
"
17
#include "
AthContainers/ViewVector.h
"
18
#include "
AthContainers/tools/supportsThinning.h
"
19
#include <type_traits>
20
22
template
<
class
TYPE>
class
CnvFactory
;
23
24
35
template
<
class
T>
36
struct
T_AthenaPoolFindBase
37
{
38
using
type
=
39
std::conditional_t<SG::xAODInterfaceSupportingThinning<T>(),
40
T_AthenaPoolxAODCnv<T>
,
41
std::conditional_t<SG::xAODStoreSupportingThinning<T>(),
42
T_AthenaPoolAuxContainerCnv<T>
,
43
T_AthenaPoolCnvBase<T>
> >;
44
};
45
46
48
template
<
class
DV>
49
struct
T_AthenaPoolFindBase
<
ViewVector
<DV> >
50
{
51
typedef
T_AthenaPoolViewVectorCnv<DV>
type
;
52
};
53
54
58
template
<
class
T>
59
class
T_AthenaPoolCnv
60
:
public
T_AthenaPoolFindBase
<T>
::type
61
{
62
typedef
typename
T_AthenaPoolFindBase<T>::type
Base
;
63
64
65
public
:
66
using
Base::Base;
67
};
68
69
70
#endif
T_AthenaPoolAuxContainerCnv.h
Athena pool converter for aux store classes.
T_AthenaPoolCnvBase.h
his file contains the class definition for the templated T_AthenaPoolCnvBase class.
T_AthenaPoolViewVectorCnv.h
Athena pool converter for a ViewVector class.
T_AthenaPoolxAODCnv.h
Athena pool converter for xAOD classes.
ViewVector.h
Identify view containers to be made persistent.
CnvFactory
Abstract factory to create the converter.
Definition
ToyConverter.h:16
T_AthenaPoolAuxContainerCnv
Athena pool converter for aux store classes.
Definition
T_AthenaPoolAuxContainerCnv.h:41
T_AthenaPoolCnvBase
This templated class provides the converter to translate an object to/from its persistent POOL repres...
Definition
T_AthenaPoolCnvBase.h:28
T_AthenaPoolCnv
This templated class provides the converter to translate an object to/from its persistent POOL repres...
Definition
T_AthenaPoolCnv.h:61
T_AthenaPoolCnv::Base
T_AthenaPoolFindBase< T >::type Base
Definition
T_AthenaPoolCnv.h:62
T_AthenaPoolViewVectorCnv
Athena pool converter for a ViewVector class.
Definition
T_AthenaPoolViewVectorCnv.h:51
T_AthenaPoolxAODCnv
Athena pool converter for xAOD classes.
Definition
T_AthenaPoolxAODCnv.h:43
ViewVector
Identify view containers to be made persistent.
Definition
ViewVector.h:67
T_AthenaPoolFindBase< ViewVector< DV > >::type
T_AthenaPoolViewVectorCnv< DV > type
Definition
T_AthenaPoolCnv.h:51
T_AthenaPoolFindBase
class to find the proper pool converter type for an EDM object.
Definition
T_AthenaPoolCnv.h:37
T_AthenaPoolFindBase::type
std::conditional_t< SG::xAODInterfaceSupportingThinning< T >(), T_AthenaPoolxAODCnv< T >, std::conditional_t< SG::xAODStoreSupportingThinning< T >(), T_AthenaPoolAuxContainerCnv< T >, T_AthenaPoolCnvBase< T > > > type
Definition
T_AthenaPoolCnv.h:38
supportsThinning.h
Metafunctions to test for thinning support.
Generated on
for ATLAS Offline Software by
1.17.0