ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Control
StoreGate
src
DecorKeyHelpers.cxx
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration.
3
*/
10
11
12
#include "
StoreGate/DecorKeyHelpers.h
"
13
#include "
StoreGate/exceptions.h
"
14
#include "
StoreGate/VarHandleKey.h
"
15
16
17
namespace
SG
{
18
19
26
std::string
contKeyFromKey
(
const
std::string& key)
27
{
28
std::string::size_type ipos = key.find (
'.'
);
29
if
(ipos == std::string::npos)
30
return
key;
31
return
key.substr (0, ipos);
32
}
33
34
42
std::string
decorKeyFromKey
(
const
std::string& key,
const
std::string& deflt
/*= ""*/
)
43
{
44
std::string::size_type ipos = key.find (
'.'
);
45
if
(ipos == std::string::npos)
46
return
deflt;
47
return
key.substr (ipos+1, std::string::npos);
48
}
49
50
59
std::string
makeContDecorKey
(
const
std::string& cont,
const
std::string& decor)
60
{
61
if
(cont.empty())
return
decor;
62
if
(decor.empty())
return
cont;
63
return
cont +
'.'
+ decor;
64
}
65
66
77
std::string
makeContDecorKey
(
const
VarHandleKey
& contKey,
const
std::string& key)
78
{
79
if
(key.empty() || key.ends_with (
'+'
)) {
80
return
""
;
81
}
82
if
(key.find(
'.'
) != std::string::npos) {
83
throw
SG::ExcBadHandleKey
(key +
" (DecorHandleKey has been declared with a parent container. "
84
"Its value should not contain any container name.)"
);
85
}
86
87
// Note: VHK::fullKey().key() contains the store prefix, key() does not.
88
return
makeContDecorKey
( contKey.fullKey().
key
(), key);
89
}
90
91
99
void
removeContFromDecorKey
(
const
VarHandleKey
& contKey, std::string& key)
100
{
101
// Remove container name from key
102
const
std::string toerase = contKey.fullKey().
key
() +
"."
;
103
const
size_t
pos = key.find(toerase);
104
if
(pos != std::string::npos) {
105
key.erase(pos, toerase.size());
106
}
107
108
}
109
110
}
// namespace SG
exceptions.h
Exceptions that can be thrown from StoreGate.
DecorKeyHelpers.h
Some common helper functions used by decoration handles.
VarHandleKey.h
A property holding a SG store/key/clid from which a VarHandle is made.
SG::ExcBadHandleKey
Exception — Bad key format for VarHandleKey.
Definition
Control/StoreGate/StoreGate/exceptions.h:62
SG::VarHandleKey
A property holding a SG store/key/clid from which a VarHandle is made.
Definition
StoreGate/StoreGate/VarHandleKey.h:59
SG::VarHandleKey::key
const std::string & key() const
Return the StoreGate ID for the referenced object.
Definition
AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:141
SG
Forward declaration.
Definition
CaloCellPacker_400_500.h:32
SG::removeContFromDecorKey
void removeContFromDecorKey(const VarHandleKey &contKey, std::string &key)
Remove container name from decoration key.
Definition
DecorKeyHelpers.cxx:99
SG::makeContDecorKey
std::string makeContDecorKey(const std::string &cont, const std::string &decor)
Make a StoreGate key from container and decoration name.
Definition
DecorKeyHelpers.cxx:59
SG::contKeyFromKey
std::string contKeyFromKey(const std::string &key)
Extract the container part of key.
Definition
DecorKeyHelpers.cxx:26
SG::decorKeyFromKey
std::string decorKeyFromKey(const std::string &key, const std::string &deflt)
Extract the decoration part of key.
Definition
DecorKeyHelpers.cxx:42
Generated on
for ATLAS Offline Software by
1.17.0