ATLAS Offline Software
NavigableVector_p2.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 DATAMODELATHENAPOOL_NAVIGABLEVECTOR_P2_H
6 #define DATAMODELATHENAPOOL_NAVIGABLEVECTOR_P2_H
7 
13 #include "VectorElementLink_p1.h"
14 
19 template <typename INDEXTYPE, typename RPAR=void>
21 {
22 public:
24  size_t size() const { return m_navigableSizes.size(); }
25 
27  std::vector<RPAR> m_parameters;
28  std::vector<unsigned short> m_navigableSizes;
29 };
30 
31 
32 // specialization of the above class for non-weighted Navigables
33 template <typename INDEXTYPE>
34 class NavigableVector_p2<INDEXTYPE, void>
35 {
36 public:
38  size_t size() const { return m_navigableSizes.size(); }
39 
41  std::vector<unsigned short> m_navigableSizes;
42 };
43 
44 
45 
46 // Helper template to generate type of the persistent NavigableVector_pN
47 // from the type of the transient Navigable
48 // Used in the NavigableVectorCnv_pN
49 
50 namespace NavigationDefaults {
51  struct DefaultWeight;
52 }
53 
54 
55 template <class NAV, typename RPAR = typename NAV::parameter_type >
57 {
58  typedef NavigableVector_p2<
60  RPAR > type;
61 };
62 
63 
64 template <class NAV >
66 {
67  typedef NavigableVector_p2<
69  > type;
70 };
71 
72 
73 
74 // If you define more Navigable_pN types, remember to add template instantiations to the Dict file
75 
78 
79 
80 #endif
81 
82 
83 
GeneratePersNavVectorType_p2< NAV, NavigationDefaults::DefaultWeight >::type
NavigableVector_p2< typename GenerateELinkIndexType_p3< typename NAV::external_index_type >::type > type
Definition: NavigableVector_p2.h:69
NavigableVector_p2::NavigableVector_p2
NavigableVector_p2()
Definition: NavigableVector_p2.h:23
NavigableVector_p2< INDEXTYPE, void >::m_links
VectorElementLink_p1_t< INDEXTYPE >::Type m_links
Definition: NavigableVector_p2.h:40
GeneratePersNavVectorType_p2
Definition: NavigableVector_p2.h:57
NavigableVector_p2::m_links
VectorElementLink_p1_t< INDEXTYPE >::Type m_links
Definition: NavigableVector_p2.h:26
NavigableVectorInt_p2
NavigableVector_p2< uint32_t > NavigableVectorInt_p2
Definition: NavigableVector_p2.h:76
NavigableVector_p2
Definition: NavigableVector_p2.h:21
NavigableVector_p2< INDEXTYPE, void >::NavigableVector_p2
NavigableVector_p2()
Definition: NavigableVector_p2.h:37
NavigableVector_p2< INDEXTYPE, void >::size
size_t size() const
Definition: NavigableVector_p2.h:38
NavigableVector_p2< INDEXTYPE, void >::m_navigableSizes
std::vector< unsigned short > m_navigableSizes
Definition: NavigableVector_p2.h:41
GeneratePersNavVectorType_p2::type
NavigableVector_p2< typename GenerateELinkIndexType_p3< typename NAV::external_index_type >::type, RPAR > type
Definition: NavigableVector_p2.h:60
NavigableVector_p2::m_parameters
std::vector< RPAR > m_parameters
Definition: NavigableVector_p2.h:27
NavigableVectorStr_p2
NavigableVector_p2< std::string > NavigableVectorStr_p2
Definition: NavigableVector_p2.h:77
NavigationDefaults
Definition: Navigable_p1.h:46
NavigableVector_p2::m_navigableSizes
std::vector< unsigned short > m_navigableSizes
Definition: NavigableVector_p2.h:28
GenerateELinkIndexType_p3
Definition: ElementLink_p3.h:43
NavigableVector_p2::size
size_t size() const
Definition: NavigableVector_p2.h:24