ATLAS Offline Software
Loading...
Searching...
No Matches
SG::ReadCondHandle< T > Class Template Reference

#include <ReadCondHandle.h>

Collaboration diagram for SG::ReadCondHandle< T >:

Public Types

typedef T * pointer_type
typedef const T * const_pointer_type
typedef T & reference_type
typedef const T & const_reference_type

Public Member Functions

 ReadCondHandle (const SG::ReadCondHandleKey< T > &key)
 ReadCondHandle (const SG::ReadCondHandleKey< T > &key, const EventContext &ctx)
 ReadCondHandle (SG::ReadCondHandleKey< T > &&key)=delete
 ReadCondHandle (SG::ReadCondHandleKey< T > &&key, const EventContext &ctx)=delete
 ~ReadCondHandle ()
const std::string & key () const
const DataObjID & fullKey () const
const_pointer_type retrieve ()
const_pointer_type retrieve (const EventIDBase &t)
const_pointer_type operator-> ()
const_pointer_type operator* ()
const_pointer_type cptr ()
bool isValid ()
bool isValid (const EventIDBase &t) const
bool range (EventIDRange &r)
bool range (const EventIDBase &t, EventIDRange &r) const
const EventIDRange & getRange ()
CondCont< T > * getCC ()

Private Member Functions

bool initCondHandle ()

Private Attributes

EventIDBase m_eid
CondCont< T > * m_cc {nullptr}
const T * m_obj { nullptr }
const EventIDRange * m_range { nullptr }
const SG::ReadCondHandleKey< T > & m_hkey

Detailed Description

template<typename T>
class SG::ReadCondHandle< T >

Definition at line 39 of file ReadCondHandle.h.

Member Typedef Documentation

◆ const_pointer_type

template<typename T>
typedef const T* SG::ReadCondHandle< T >::const_pointer_type

Definition at line 43 of file ReadCondHandle.h.

◆ const_reference_type

template<typename T>
typedef const T& SG::ReadCondHandle< T >::const_reference_type

Definition at line 45 of file ReadCondHandle.h.

◆ pointer_type

template<typename T>
typedef T* SG::ReadCondHandle< T >::pointer_type

Definition at line 42 of file ReadCondHandle.h.

◆ reference_type

template<typename T>
typedef T& SG::ReadCondHandle< T >::reference_type

Definition at line 44 of file ReadCondHandle.h.

Constructor & Destructor Documentation

◆ ReadCondHandle() [1/4]

template<typename T>
SG::ReadCondHandle< T >::ReadCondHandle ( const SG::ReadCondHandleKey< T > & key)

Definition at line 94 of file ReadCondHandle.h.

94 :
96 {
97 // cppcheck-suppress missingReturn; false positive
98 }
ReadCondHandle(const SG::ReadCondHandleKey< T > &key)
const std::string & key() const

◆ ReadCondHandle() [2/4]

template<typename T>
SG::ReadCondHandle< T >::ReadCondHandle ( const SG::ReadCondHandleKey< T > & key,
const EventContext & ctx )

Definition at line 103 of file ReadCondHandle.h.

104 :
105 m_eid( ctx.eventID() ),
106 m_cc( key.getCC() ),
107 m_hkey(key)
108 {
109 try {
113 m_eid.set_run_number (conditionsRun);
114 }
115 }
116 catch (const std::bad_any_cast& e) {
117 throw SG::ExcBadContext (ctx, key.objKey());
118 }
119
120 if (!key.isInit()) [[unlikely]] {
121 throw SG::ExcUninitKey (key.clid(), key.key(), key.storeHandle().name(),
122 "", "ReadCond");
123 }
124
125 if (m_cc == 0) [[unlikely]] {
126 // try to retrieve it
127 CondContBase *cb(nullptr);
128 if (m_hkey.getCS()->retrieve(cb, m_hkey.key()).isFailure()) {
129 throw SG::ExcNoCondCont (m_hkey.fullKey().key(), "Can't retrieve.");
130 } else {
131 m_cc = dynamic_cast< CondCont<T>* > (cb);
132 if (m_cc == 0) {
133 throw SG::ExcNoCondCont (m_hkey.fullKey().key(), "Can't dcast CondContBase.");
134 }
135 }
136 }
137 }
EventIDBase::number_type conditionsRun() const
const SG::ReadCondHandleKey< T > & m_hkey
CondCont< T > * m_cc
const ExtendedEventContext & getExtendedEventContext(const EventContext &ctx)
Retrieve an extended context from a context object.

◆ ReadCondHandle() [3/4]

template<typename T>
SG::ReadCondHandle< T >::ReadCondHandle ( SG::ReadCondHandleKey< T > && key)
delete

◆ ReadCondHandle() [4/4]

template<typename T>
SG::ReadCondHandle< T >::ReadCondHandle ( SG::ReadCondHandleKey< T > && key,
const EventContext & ctx )
delete

◆ ~ReadCondHandle()

template<typename T>
SG::ReadCondHandle< T >::~ReadCondHandle ( )
inline

Definition at line 56 of file ReadCondHandle.h.

56{};

Member Function Documentation

◆ cptr()

template<typename T>
const_pointer_type SG::ReadCondHandle< T >::cptr ( )
inline

Definition at line 66 of file ReadCondHandle.h.

66{ return retrieve(); }
const_pointer_type retrieve()

◆ fullKey()

template<typename T>
const DataObjID & SG::ReadCondHandle< T >::fullKey ( ) const
inline

Definition at line 59 of file ReadCondHandle.h.

59{ return m_hkey.fullKey(); }

◆ getCC()

template<typename T>
CondCont< T > * SG::ReadCondHandle< T >::getCC ( )
inline

Definition at line 76 of file ReadCondHandle.h.

76{ return m_cc; }

◆ getRange()

template<typename T>
const EventIDRange & SG::ReadCondHandle< T >::getRange ( )

Definition at line 240 of file ReadCondHandle.h.

240 {
241
242 if (m_obj == 0) {
243 if (!initCondHandle()) {
245 }
246 }
247
248 if (!m_range) {
249 throw SG::ExcNoRange();
250 }
251 return *m_range;
252
253 }
const EventIDRange * m_range

◆ initCondHandle()

template<typename T>
bool SG::ReadCondHandle< T >::initCondHandle ( )
private

Definition at line 143 of file ReadCondHandle.h.

143 {
144
145 if (m_obj != 0) return true;
146
147 if (!m_cc->find(m_eid, m_obj, &m_range)) [[unlikely]] {
149 m_obj = nullptr;
150 return false;
151 }
152
153 return true;
154 }

◆ isValid() [1/2]

template<typename T>
bool SG::ReadCondHandle< T >::isValid ( )

Definition at line 204 of file ReadCondHandle.h.

204 {
205
206 return initCondHandle();
207 }

◆ isValid() [2/2]

template<typename T>
bool SG::ReadCondHandle< T >::isValid ( const EventIDBase & t) const

Definition at line 213 of file ReadCondHandle.h.

213 {
214
215 return (m_cc->valid(t));
216 }

◆ key()

template<typename T>
const std::string & SG::ReadCondHandle< T >::key ( ) const
inline

Definition at line 58 of file ReadCondHandle.h.

58{ return m_hkey.key(); }

◆ operator*()

template<typename T>
const_pointer_type SG::ReadCondHandle< T >::operator* ( )
inline

Definition at line 65 of file ReadCondHandle.h.

65{ return retrieve(); }

◆ operator->()

template<typename T>
const_pointer_type SG::ReadCondHandle< T >::operator-> ( )
inline

Definition at line 64 of file ReadCondHandle.h.

64{ return retrieve(); }

◆ range() [1/2]

template<typename T>
bool SG::ReadCondHandle< T >::range ( const EventIDBase & t,
EventIDRange & r ) const

Definition at line 260 of file ReadCondHandle.h.

260 {
261
262 return ( m_cc->range(eid, r) );
263 }

◆ range() [2/2]

template<typename T>
bool SG::ReadCondHandle< T >::range ( EventIDRange & r)

Definition at line 222 of file ReadCondHandle.h.

222 {
223
224 if (m_obj == 0) {
225 if (!initCondHandle()) {
226 return false;
227 }
228 }
229
230 if (m_range) {
231 r = *m_range;
232 return true;
233 }
234
235 return false;
236 }

◆ retrieve() [1/2]

template<typename T>
const T * SG::ReadCondHandle< T >::retrieve ( )

Definition at line 160 of file ReadCondHandle.h.

160 {
161
162 if (m_obj == 0) {
163 if (!initCondHandle()) {
164 // std::ostringstream ost;
165 // m_cc->list(ost);
166 // MsgStream msg(Athena::getMessageSvc(), "ReadCondHandle");
167 // msg << MSG::ERROR
168 // << "ReadCondHandle::retrieve() could not find EventTime "
169 // << m_eid << " for key " << objKey() << "\n"
170 // << ost.str()
171 // << endmsg;
172 return nullptr;
173 }
174 }
175
176 return m_obj;
177 }

◆ retrieve() [2/2]

template<typename T>
const T * SG::ReadCondHandle< T >::retrieve ( const EventIDBase & t)

Definition at line 183 of file ReadCondHandle.h.

183 {
184 if (eid == m_eid) {
185 return retrieve();
186 }
187
188 // pointer_type obj(0);
190 if (! (m_cc->find(eid, cobj) ) ) {
192 return nullptr;
193 }
194
195 // const_pointer_type cobj = const_cast<const_pointer_type>( obj );
196
197 return cobj;
198 }
const T * const_pointer_type

Member Data Documentation

◆ m_cc

template<typename T>
CondCont<T>* SG::ReadCondHandle< T >::m_cc {nullptr}
private

Definition at line 83 of file ReadCondHandle.h.

83{nullptr};

◆ m_eid

template<typename T>
EventIDBase SG::ReadCondHandle< T >::m_eid
private

Definition at line 82 of file ReadCondHandle.h.

◆ m_hkey

template<typename T>
const SG::ReadCondHandleKey<T>& SG::ReadCondHandle< T >::m_hkey
private

Definition at line 87 of file ReadCondHandle.h.

◆ m_obj

template<typename T>
const T* SG::ReadCondHandle< T >::m_obj { nullptr }
private

Definition at line 84 of file ReadCondHandle.h.

84{ nullptr };

◆ m_range

template<typename T>
const EventIDRange* SG::ReadCondHandle< T >::m_range { nullptr }
private

Definition at line 85 of file ReadCondHandle.h.

85{ nullptr };

The documentation for this class was generated from the following file: