ATLAS Offline Software
Loading...
Searching...
No Matches
AthToolSupport/AsgDataHandles/AsgDataHandles/VarHandleBase.h
Go to the documentation of this file.
1// This file's extension implies that it's C, but it's really -*- C++ -*-.
2
3/*
4 Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
5*/
6
7// $Id: VarHandleBase.h 797637 2017-02-17 02:32:11Z ssnyder $
14
15#ifndef ASG_DATA_HANDLES_VAR_HANDLE_BASE_H
16#define ASG_DATA_HANDLES_VAR_HANDLE_BASE_H
17
18#ifndef XAOD_STANDALONE
20#else
21
22// STL includes
23#include <memory>
24#include <string>
25
26// #include "AsgDataHandles/VarHandleKey.h"
27
28class EventContext;
29
30namespace SG {
31 // static constexpr bool defaultQuiet = false;
32
33 class VarHandleKey;
34
35
42 class VarHandleBase
43 {
44 public:
45
51 VarHandleBase() = default;
52
53
58 explicit VarHandleBase(const std::string& sgkey);
59
60
73 explicit VarHandleBase (const VarHandleKey& key, const EventContext* ctx);
74
75
76 //*************************************************************************
77 // Accessors
78 //
79
80
84 const std::string& key() const;
85
86
92 const std::string& name() const ;
93
94
95 // /**
96 // * @brief Return the name of the store holding the object we are proxying.
97 // */
98 // std::string store() const;
99
100
101 //*************************************************************************
102 // @c VarHandleKey methods.
103 //
104
105
106 // /**
107 // * @brief Return the key string of the underlying @c DataObjID.
108 // *
109 // * Compared to @c key(), this will be prefixed with the store name.
110 // */
111 // const std::string& objKey() const;
112
113
114 // /**
115 // * @brief Return the key as a @c DataObjID.
116 // */
117 // const DataObjID& fullKey() const;
118
119
120 // /**
121 // * @brief Return a non-const reference to the HandleKey.
122 // *
123 // * If this handle was initialized from a HandleKey, then this doesn't work
124 // * (since the HandleKey is const). ExcNonConstHandleKey will be thrown
125 // * in that case.
126 // */
127 // SG::VarHandleKey& vhKey();
128
129
130 // /**
131 // * @brief Update the underlying key from a string.
132 // *
133 // * If this handle was initialized from a HandleKey, then this doesn't work
134 // * (since the HandleKey is const). ExcNonConstHandleKey will be thrown
135 // * in that case.
136 // *
137 // * See VarHandleKey::assign.
138 // */
139 // StatusCode assign (const std::string& sgkey);
140
141
142
143 protected:
144 //*************************************************************************
145 // Protected data.
146 //
147
148
149 private:
153 std::unique_ptr<VarHandleKey> m_ownedKey;
154
156 const VarHandleKey* m_key {nullptr};
157
158 };
159
160
161 // //*************************************************************************
162 // // Free functions.
163 // //
164
165
166 // /**
167 // * @brief Output stream.
168 // * @param out Stream to which to write.
169 // * @param o Object to write.
170 // */
171 // std::ostream& operator<<( std::ostream& out, const VarHandleBase& o );
172
173
174 // /**
175 // * @brief Equality comparison.
176 // */
177 // bool operator==(const VarHandleBase& l, const VarHandleBase& r);
178
179
180 // /**
181 // * @brief Inequality comparison.
182 // */
183 // bool operator!=(const VarHandleBase& l, const VarHandleBase& r);
184
185
186} /* namespace SG */
187
189
190#endif
191
192#endif
Base class for VarHandle classes.
Base class for VarHandle types.
VarHandleBase(CLID clid, Gaudi::DataHandle::Mode mode)
Constructor with default key.
virtual const std::string & key() const override final
Return the StoreGate ID for the referenced object.
std::unique_ptr< VarHandleKey > m_ownedKey
An owned VarHandleKey.
const VarHandleKey * m_key
The associated key object.
const std::string & name() const
Return the StoreGate ID for the referenced object.
A property holding a SG store/key/clid from which a VarHandle is made.
Forward declaration.