ATLAS Offline Software
Loading...
Searching...
No Matches
ElementLink_p1.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_P1_H
6#define DATAMODELATHENAPOOL_ELEMENTLINK_P1_H
7
12
13#include <string>
14#include <inttypes.h>
15
16#include "SGCore/sgkey_t.h"
17
21
22template <class INDEXTYPE>
24public:
25
27
28 std::string m_contName;
29 INDEXTYPE m_elementIndex;
30 SG::sgkey_t m_SGKeyHash; // replaces m_contName
31};
32
33
34// If you define more ElementLink_pN types, remember to add template instantiations to the Dict file
35
38
39
40// Helper template for conversion from the index type in transient ElementLink
41// to the persistent index type
42
43template <typename ContIndxType>
45// typedef MISSING_DEFINITION_OF_GenerateELinkIndexType_FOR_<ContIndxType> type;
46};
47
48template<>
49struct GenerateELinkIndexType_p1<uint32_t> {
50 typedef uint32_t type;
51};
52
53template<>
54struct GenerateELinkIndexType_p1<uint64_t> {
55 typedef uint32_t type;
56};
57
58template<>
60 typedef uint32_t type;
61};
62
63#ifdef __APPLE__
64template<>
65struct GenerateELinkIndexType_p1<size_t> {
66 typedef uint32_t type;
67};
68#endif
69
70template<>
72 typedef std::string type;
73};
74
75
76// Helper template to generate type of the persistent ElementLink_pN
77// from the type of the transient ElementLink
78// Used in the ElementlinkCnv_pN
79
80template <class LINK>
84
85#endif // DATAMODELATHENAPOOL_ELEMENTLINK_P1_H
STL class.
uint32_t sgkey_t
Type used for hashed StoreGate key+CLID pairs.
Definition sgkey_t.h:32
STL namespace.
ElementLink_p1< typename GenerateELinkIndexType_p1< typename LINK::index_type >::type > type