ATLAS Offline Software
Loading...
Searching...
No Matches
Control
DataModelAthenaPool
DataModelAthenaPool
ElementLink_p3.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#ifndef DATAMODELATHENAPOOL_ELEMENTLINK_P3_H
6
#define DATAMODELATHENAPOOL_ELEMENTLINK_P3_H
7
12
13
#include <string>
14
#include <inttypes.h>
15
16
#include "
SGCore/sgkey_t.h
"
17
21
22
template
<
class
INDEXTYPE>
23
class
ElementLink_p3
{
24
public
:
25
26
ElementLink_p3
() =
default
;
27
28
INDEXTYPE
m_elementIndex
{};
29
SG::sgkey_t
m_SGKeyHash
{0};
30
};
31
32
33
// If you define more ElementLink_pN types, remember to add template instantiations to the Dict file
34
35
typedef
ElementLink_p3<uint32_t>
ElementLinkInt_p3
;
36
typedef
ElementLink_p3<std::string>
ElementLinkStr_p3
;
37
38
39
// Helper template for conversion from the index type in transient ElementLink
40
// to the persistent index type
41
42
template
<
typename
ContIndxType>
43
struct
GenerateELinkIndexType_p3
{
44
// typedef MISSING_DEFINITION_OF_GenerateELinkIndexType_FOR_<ContIndxType> type;
45
};
46
47
template
<>
48
struct
GenerateELinkIndexType_p3
<uint32_t> {
49
typedef
uint32_t
type
;
50
};
51
52
template
<>
53
struct
GenerateELinkIndexType_p3
<uint64_t> {
54
typedef
uint32_t
type
;
55
};
56
57
template
<>
58
struct
GenerateELinkIndexType_p3
<int> {
59
typedef
uint32_t
type
;
60
};
61
62
#ifdef __APPLE__
63
template
<>
64
struct
GenerateELinkIndexType_p3
<size_t> {
65
typedef
uint32_t
type
;
66
};
67
#endif
68
69
template
<>
70
struct
GenerateELinkIndexType_p3
<
std
::
string
> {
71
typedef
std::string
type
;
72
};
73
74
75
// Helper template to generate type of the persistent ElementLink_pN
76
// from the type of the transient ElementLink
77
// Used in the ElementlinkCnv_pN
78
79
template
<
class
LINK>
80
struct
GeneratePersELinkType_p3
{
81
typedef
ElementLink_p3<typename GenerateELinkIndexType_p3<typename LINK::index_type>::type
>
type
;
82
};
83
84
#endif
// DATAMODELATHENAPOOL_ELEMENTLINK_P3_H
ElementLinkInt_p3
ElementLink_p3< uint32_t > ElementLinkInt_p3
Definition
ElementLink_p3.h:35
ElementLinkStr_p3
ElementLink_p3< std::string > ElementLinkStr_p3
Definition
ElementLink_p3.h:36
ElementLink_p3
Definition
ElementLink_p3.h:23
ElementLink_p3< uint32_t >::m_elementIndex
uint32_t m_elementIndex
Definition
ElementLink_p3.h:28
ElementLink_p3< uint32_t >::m_SGKeyHash
SG::sgkey_t m_SGKeyHash
Definition
ElementLink_p3.h:29
ElementLink_p3::ElementLink_p3
ElementLink_p3()=default
string
STL class.
SG::sgkey_t
uint32_t sgkey_t
Type used for hashed StoreGate key+CLID pairs.
Definition
sgkey_t.h:32
std
STL namespace.
sgkey_t.h
GenerateELinkIndexType_p3< int >::type
uint32_t type
Definition
ElementLink_p3.h:59
GenerateELinkIndexType_p3< std::string >::type
std::string type
Definition
ElementLink_p3.h:71
GenerateELinkIndexType_p3< uint32_t >::type
uint32_t type
Definition
ElementLink_p3.h:49
GenerateELinkIndexType_p3< uint64_t >::type
uint32_t type
Definition
ElementLink_p3.h:54
GenerateELinkIndexType_p3
Definition
ElementLink_p3.h:43
type
GeneratePersELinkType_p3
Definition
ElementLink_p3.h:80
GeneratePersELinkType_p3::type
ElementLink_p3< typename GenerateELinkIndexType_p3< typename LINK::index_type >::type > type
Definition
ElementLink_p3.h:81
Generated on
for ATLAS Offline Software by
1.14.0