ATLAS Offline Software
Loading...
Searching...
No Matches
NavigableCnv_p1.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 DATAMODELATHENAPOOL_NAVIGABLECNV_P1_H
6#define DATAMODELATHENAPOOL_NAVIGABLECNV_P1_H
7
14
16#include "AthLinks/ElementLinkVector.h"
18#include "Navigable_p1.h"
19namespace SG {
20 class ThinningCache;
21}
22
26
27template <class NAV, typename RPAR = typename NAV::parameter_type>
29 : public T_AthenaPoolTPCnvConstBase< NAV, typename GeneratePersNavigableType<NAV, RPAR >::type > {
30public:
31 typedef NAV Navigable_t;
34
38
40
41 void transToPers(const Navigable_t& trans, PersNavigable_t& pers,
42 const SG::ThinningCache* cache,
43 MsgStream& log) const;
44
45 void transToPers(const Navigable_t& trans, PersNavigable_t& pers, MsgStream& log) const;
46 void persToTrans(const PersNavigable_t& pers, Navigable_t& trans, MsgStream& log) const;
47
48 // standard interface for TP converter
49 virtual void transToPers(const Navigable_t* trans, PersNavigable_t* pers, MsgStream& log) const override;
50 virtual void persToTrans(const PersNavigable_t* pers, Navigable_t* trans, MsgStream& log) const override;
51
52
53protected:
54 // converter for element link vector
56};
57
58
59// Specialized version of the converter for Navigables without weight parameters
60
61template <class NAV >
62class NavigableCnv_p1<NAV, NavigationDefaults::DefaultWeight >
63 : public T_AthenaPoolTPCnvConstBase< NAV, typename GeneratePersNavigableType<NAV >::type > {
64public:
65 typedef NAV Navigable_t;
68
72
74
75
76 void transToPers(const Navigable_t& trans, PersNavigable_t& pers,
77 const SG::ThinningCache* cache,
78 MsgStream& log) const;
79
80 void transToPers(const Navigable_t& trans, PersNavigable_t& pers, MsgStream& log) const;
81 void persToTrans(const PersNavigable_t& pers, Navigable_t& trans, MsgStream& log) const;
82
83
84 // standard interface for TP converter
85 virtual void transToPers(const Navigable_t* trans, PersNavigable_t* pers, MsgStream& log) const override;
86 virtual void persToTrans(const PersNavigable_t* pers, Navigable_t* trans, MsgStream& log) const override;
87
88protected:
89 // converter for element link vector
91};
92
93
94#ifndef __REFLEX__
95#include "NavigableCnv_p1.icc"
96#endif // not __REFLEX__
97
98#endif
99
This file contains the class definition for the ElementLinkVectorCnv_p1 class.
This file contains the class definition for the Navigable_p1 class.
TPConverterConstBase< TRANS, PERS > T_AthenaPoolTPCnvConstBase
ElementLinkVector implementation for standalone ROOT.
void persToTrans(const PersNavigable_t &pers, Navigable_t &trans, MsgStream &log) const
virtual void persToTrans(const PersNavigable_t *pers, Navigable_t *trans, MsgStream &log) const override
void transToPers(const Navigable_t &trans, PersNavigable_t &pers, const SG::ThinningCache *cache, MsgStream &log) const
void transToPers(const Navigable_t &trans, PersNavigable_t &pers, MsgStream &log) const
virtual void transToPers(const Navigable_t *trans, PersNavigable_t *pers, MsgStream &log) const override
ElementLinkVectorCnv_p1< ElementLinkVect_t > m_linkCnv
ElementLinkVector< typename NAV::container_type > ElementLinkVect_t
GeneratePersNavigableType< Navigable_t >::type PersNavigable_t
T_AthenaPoolTPCnvConstBase< NAV, PersNavigable_t > base_class
GeneratePersNavigableType< Navigable_t, RPAR >::type PersNavigable_t
T_AthenaPoolTPCnvConstBase< NAV, PersNavigable_t > base_class
void transToPers(const Navigable_t &trans, PersNavigable_t &pers, const SG::ThinningCache *cache, MsgStream &log) const
void transToPers(const Navigable_t &trans, PersNavigable_t &pers, MsgStream &log) const
virtual void persToTrans(const PersNavigable_t *pers, Navigable_t *trans, MsgStream &log) const override
void persToTrans(const PersNavigable_t &pers, Navigable_t &trans, MsgStream &log) const
ElementLinkVector< typename NAV::container_type > ElementLinkVect_t
virtual void transToPers(const Navigable_t *trans, PersNavigable_t *pers, MsgStream &log) const override
Cache thinning decisions for converters.
virtual void transToPers(const TRANS *transObj, PERS *persObj, MsgStream &log) const =0
Convert transient representation to persistent one.
virtual void persToTrans(const PERS *persObj, TRANS *transObj, MsgStream &log) const =0
Convert persistent representation to transient one.
Forward declaration.
Navigable_p1< typename GenerateELinkIndexType_p1< typename NAV::external_index_type >::type, RPAR > type