ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Control
DataModelAthenaPool
DataModelAthenaPool
NavigableVector_p1.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_P1_H
6
#define DATAMODELATHENAPOOL_NAVIGABLEVECTOR_P1_H
7
12
13
#include "
ElementLinkVector_p1.h
"
14
18
19
template
<
typename
INDEXTYPE,
typename
RPAR=
void
>
20
class
NavigableVector_p1
21
{
22
public
:
23
NavigableVector_p1
() {}
24
size_t
size
()
const
{
return
m_navigableSizes
.size(); }
25
26
ElementLinkVector_p1< INDEXTYPE >
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_p1
<INDEXTYPE, void>
35
{
36
public
:
37
NavigableVector_p1
() {}
38
size_t
size
()
const
{
return
m_navigableSizes
.size(); }
39
40
ElementLinkVector_p1< INDEXTYPE >
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
57
{
58
typedef
NavigableVector_p1
<
59
typename
GenerateELinkIndexType_p1<typename NAV::external_index_type>::type
,
60
RPAR >
type
;
61
};
62
63
64
template
<
class
NAV >
65
struct
GeneratePersNavVectorType
<NAV,
NavigationDefaults
::DefaultWeight >
66
{
67
typedef
NavigableVector_p1
<
68
typename
GenerateELinkIndexType_p1<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_p1<uint32_t>
NavigableVectorInt_p1
;
77
typedef
NavigableVector_p1<std::string>
NavigableVectorStr_p1
;
78
79
80
#endif
81
82
83
ElementLinkVector_p1.h
This file contains the class definition for the ElementLinkVector_p1 class.
NavigableVectorInt_p1
NavigableVector_p1< uint32_t > NavigableVectorInt_p1
Definition
NavigableVector_p1.h:76
NavigableVectorStr_p1
NavigableVector_p1< std::string > NavigableVectorStr_p1
Definition
NavigableVector_p1.h:77
ElementLinkVector_p1
Definition
ElementLinkVector_p1.h:23
NavigableVector_p1< INDEXTYPE, void >::m_navigableSizes
std::vector< unsigned short > m_navigableSizes
Definition
NavigableVector_p1.h:41
NavigableVector_p1< INDEXTYPE, void >::NavigableVector_p1
NavigableVector_p1()
Definition
NavigableVector_p1.h:37
NavigableVector_p1< INDEXTYPE, void >::size
size_t size() const
Definition
NavigableVector_p1.h:38
NavigableVector_p1< INDEXTYPE, void >::m_links
ElementLinkVector_p1< INDEXTYPE > m_links
Definition
NavigableVector_p1.h:40
NavigableVector_p1
Definition
NavigableVector_p1.h:21
NavigableVector_p1< typename GenerateELinkIndexType_p1< typename NAV::external_index_type >::type, RPAR >::m_links
ElementLinkVector_p1< typename GenerateELinkIndexType_p1< typename NAV::external_index_type >::type > m_links
Definition
NavigableVector_p1.h:26
NavigableVector_p1::NavigableVector_p1
NavigableVector_p1()
Definition
NavigableVector_p1.h:23
NavigableVector_p1< typename GenerateELinkIndexType_p1< typename NAV::external_index_type >::type, RPAR >::m_navigableSizes
std::vector< unsigned short > m_navigableSizes
Definition
NavigableVector_p1.h:28
NavigableVector_p1< typename GenerateELinkIndexType_p1< typename NAV::external_index_type >::type, RPAR >::m_parameters
std::vector< RPAR > m_parameters
Definition
NavigableVector_p1.h:27
NavigableVector_p1::size
size_t size() const
Definition
NavigableVector_p1.h:24
NavigationDefaults
Definition
Navigable_p1.h:46
GenerateELinkIndexType_p1
Definition
ElementLink_p1.h:44
GeneratePersNavVectorType< NAV, NavigationDefaults::DefaultWeight >::type
NavigableVector_p1< typename GenerateELinkIndexType_p1< typename NAV::external_index_type >::type > type
Definition
NavigableVector_p1.h:69
GeneratePersNavVectorType
Definition
NavigableVector_p1.h:57
GeneratePersNavVectorType::type
NavigableVector_p1< typename GenerateELinkIndexType_p1< typename NAV::external_index_type >::type, RPAR > type
Definition
NavigableVector_p1.h:60
Generated on
for ATLAS Offline Software by
1.17.0