ATLAS Offline Software
Loading...
Searching...
No Matches
NavigableCnv_p2.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_P2_H
6#define DATAMODELATHENAPOOL_NAVIGABLECNV_P2_H
7
14
16#include "AthLinks/ElementLink.h"
18#include "Navigable_p2.h"
19namespace SG {
20 class ThinningCache;
21}
22
23
27
28template <class NAV, typename RPAR = typename NAV::parameter_type>
30 : public T_AthenaPoolTPCnvConstBase< NAV, typename GeneratePersNavigableType_p2<NAV, RPAR >::type > {
31public:
32 typedef NAV Navigable_t;
34 typedef std::vector<ElementLink<typename NAV::container_type> > ElementLinkVect_t;
35
39
41
42 void transToPers(const Navigable_t& trans, PersNavigable_t& pers,
43 const SG::ThinningCache* cache,
44 MsgStream& log) const;
45
46 void transToPers(const Navigable_t& trans, PersNavigable_t& pers, MsgStream& log) const;
47 void persToTrans(const PersNavigable_t& pers, Navigable_t& trans, MsgStream& log) const;
48
49 // standard interface for TP converter
50 virtual void transToPers(const Navigable_t* trans, PersNavigable_t* pers, MsgStream& log) const override;
51 virtual void persToTrans(const PersNavigable_t* pers, Navigable_t* trans, MsgStream& log) const override;
52
53
54protected:
55 // converter for element link vector
57};
58
59
60// Specialized version of the converter for Navigables without weight parameters
61
62template <class NAV >
63class NavigableCnv_p2<NAV, NavigationDefaults::DefaultWeight >
64 : public T_AthenaPoolTPCnvConstBase< NAV, typename GeneratePersNavigableType_p2<NAV >::type > {
65public:
66 typedef NAV Navigable_t;
68 typedef std::vector<ElementLink<typename NAV::container_type> > ElementLinkVect_t;
69
73
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 // standard interface for TP converter
84 virtual void transToPers(const Navigable_t* trans, PersNavigable_t* pers, MsgStream& log) const override;
85 virtual void persToTrans(const PersNavigable_t* pers, Navigable_t* trans, MsgStream& log) const override;
86
87
88protected:
89 // converter for element link vector
91};
92
93
94#ifndef __REFLEX__
95#include "NavigableCnv_p2.icc"
96#endif // not __REFLEX__
97
98#endif
99
This file contains the class definition for the Navigable_p2 class.
TPConverterConstBase< TRANS, PERS > T_AthenaPoolTPCnvConstBase
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
std::vector< ElementLink< typename NAV::container_type > > ElementLinkVect_t
VectorElementLinkCnv_p1< ElementLinkVect_t > m_linkCnv
T_AthenaPoolTPCnvConstBase< NAV, PersNavigable_t > base_class
virtual void transToPers(const Navigable_t *trans, PersNavigable_t *pers, MsgStream &log) const override
void transToPers(const Navigable_t &trans, PersNavigable_t &pers, const SG::ThinningCache *cache, MsgStream &log) const
GeneratePersNavigableType_p2< Navigable_t >::type PersNavigable_t
void persToTrans(const PersNavigable_t &pers, Navigable_t &trans, MsgStream &log) const
void transToPers(const Navigable_t &trans, PersNavigable_t &pers, const SG::ThinningCache *cache, MsgStream &log) const
std::vector< ElementLink< typename NAV::container_type > > ElementLinkVect_t
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
GeneratePersNavigableType_p2< Navigable_t, RPAR >::type PersNavigable_t
virtual void persToTrans(const PersNavigable_t *pers, Navigable_t *trans, MsgStream &log) const override
T_AthenaPoolTPCnvConstBase< NAV, PersNavigable_t > base_class
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_p2< typename GenerateELinkIndexType_p3< typename NAV::external_index_type >::type, RPAR > type