ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Control
DataModelAthenaPool
DataModelAthenaPool
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
12
13
#include "
VectorElementLink_p1.h
"
14
18
19
template
<
typename
INDEXTYPE,
typename
RPAR=
void
>
20
class
NavigableVector_p2
21
{
22
public
:
23
NavigableVector_p2
() {}
24
size_t
size
()
const
{
return
m_navigableSizes
.size(); }
25
26
typename
VectorElementLink_p1_t< INDEXTYPE >::Type
m_links
;
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
:
37
NavigableVector_p2
() {}
38
size_t
size
()
const
{
return
m_navigableSizes
.size(); }
39
40
typename
VectorElementLink_p1_t< INDEXTYPE >::Type
m_links
;
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 >
56
struct
GeneratePersNavVectorType_p2
57
{
58
typedef
NavigableVector_p2
<
59
typename
GenerateELinkIndexType_p3<typename NAV::external_index_type>::type
,
60
RPAR >
type
;
61
};
62
63
64
template
<
class
NAV >
65
struct
GeneratePersNavVectorType_p2
<NAV,
NavigationDefaults
::DefaultWeight >
66
{
67
typedef
NavigableVector_p2
<
68
typename
GenerateELinkIndexType_p3<typename NAV::external_index_type>::type
69
>
type
;
70
};
71
72
73
74
// If you define more Navigable_pN types, remember to add template instantiations to the Dict file
75
76
typedef
NavigableVector_p2<uint32_t>
NavigableVectorInt_p2
;
77
typedef
NavigableVector_p2<std::string>
NavigableVectorStr_p2
;
78
79
80
#endif
81
82
83
NavigableVectorStr_p2
NavigableVector_p2< std::string > NavigableVectorStr_p2
Definition
NavigableVector_p2.h:77
NavigableVectorInt_p2
NavigableVector_p2< uint32_t > NavigableVectorInt_p2
Definition
NavigableVector_p2.h:76
VectorElementLink_p1.h
This file contains the class definition for theVector ElementLink_p1 class.
NavigableVector_p2< INDEXTYPE, void >::NavigableVector_p2
NavigableVector_p2()
Definition
NavigableVector_p2.h:37
NavigableVector_p2< INDEXTYPE, void >::m_navigableSizes
std::vector< unsigned short > m_navigableSizes
Definition
NavigableVector_p2.h:41
NavigableVector_p2< INDEXTYPE, void >::size
size_t size() const
Definition
NavigableVector_p2.h:38
NavigableVector_p2< INDEXTYPE, void >::m_links
VectorElementLink_p1_t< INDEXTYPE >::Type m_links
Definition
NavigableVector_p2.h:40
NavigableVector_p2
Definition
NavigableVector_p2.h:21
NavigableVector_p2::NavigableVector_p2
NavigableVector_p2()
Definition
NavigableVector_p2.h:23
NavigableVector_p2< typename GenerateELinkIndexType_p3< typename NAV::external_index_type >::type, RPAR >::m_navigableSizes
std::vector< unsigned short > m_navigableSizes
Definition
NavigableVector_p2.h:28
NavigableVector_p2::size
size_t size() const
Definition
NavigableVector_p2.h:24
NavigableVector_p2< typename GenerateELinkIndexType_p3< typename NAV::external_index_type >::type, RPAR >::m_parameters
std::vector< RPAR > m_parameters
Definition
NavigableVector_p2.h:27
NavigableVector_p2< typename GenerateELinkIndexType_p3< typename NAV::external_index_type >::type, RPAR >::m_links
VectorElementLink_p1_t< typename GenerateELinkIndexType_p3< typename NAV::external_index_type >::type >::Type m_links
Definition
NavigableVector_p2.h:26
NavigationDefaults
Definition
Navigable_p1.h:46
GenerateELinkIndexType_p3
Definition
ElementLink_p3.h:43
GeneratePersNavVectorType_p2< NAV, NavigationDefaults::DefaultWeight >::type
NavigableVector_p2< typename GenerateELinkIndexType_p3< typename NAV::external_index_type >::type > type
Definition
NavigableVector_p2.h:69
GeneratePersNavVectorType_p2
Definition
NavigableVector_p2.h:57
GeneratePersNavVectorType_p2::type
NavigableVector_p2< typename GenerateELinkIndexType_p3< typename NAV::external_index_type >::type, RPAR > type
Definition
NavigableVector_p2.h:60
VectorElementLink_p1_t::Type
std::vector< ElementLink_p3< INDEXTYPE > > Type
Definition
VectorElementLink_p1.h:25
Generated on
for ATLAS Offline Software by
1.17.0