The Gaudi Framework  v29r0 (ff2e7097)
DataHandle.h
Go to the documentation of this file.
1 #ifndef GAUDIKERNEL_DATAHANDLE
2 #define GAUDIKERNEL_DATAHANDLE 1
3 
5 
6 //---------------------------------------------------------------------------
7 
21 //---------------------------------------------------------------------------
22 
23 class IDataHandleHolder;
24 
25 namespace Gaudi
26 {
27 
28  class DataHandle
29  {
30  public:
31  enum Mode { Reader = 1 << 2, Writer = 1 << 4, Updater = Reader | Writer };
32 
33  DataHandle( const DataObjID& k, Mode a = Reader, IDataHandleHolder* owner = nullptr )
34  : m_key( k ), m_owner( owner ), m_mode( a ){};
35 
36  DataHandle( const DataObjID& k, const bool& isCond, Mode a = Reader, IDataHandleHolder* owner = nullptr )
37  : m_key( k ), m_owner( owner ), m_mode( a ), m_isCond( isCond ){};
38 
39  virtual ~DataHandle() = default;
40 
41  virtual void setOwner( IDataHandleHolder* o ) { m_owner = o; }
42  virtual IDataHandleHolder* owner() const { return m_owner; }
43 
44  virtual Mode mode() const { return m_mode; }
45 
46  virtual void setKey( const DataObjID& key ) const { m_key = key; }
47  virtual void updateKey( const std::string& key ) const { m_key.updateKey( key ); }
48 
49  virtual const std::string& objKey() const { return m_key.key(); }
50  virtual const DataObjID& fullKey() const { return m_key; }
51 
52  virtual void reset( bool ){};
53  virtual StatusCode commit() { return StatusCode::SUCCESS; }
54 
55  virtual std::string pythonRepr() const;
56  virtual bool init() { return true; }
57 
58  // is this a ConditionHandle?
59  virtual bool isCondition() const { return m_isCond; }
60 
61  protected:
68  mutable DataObjID m_key = {"NONE"};
70 
71  private:
73  bool m_isCond = false;
74  };
75 }
76 
77 #endif
virtual void reset(bool)
Definition: DataHandle.h:52
DataHandle(const DataObjID &k, const bool &isCond, Mode a=Reader, IDataHandleHolder *owner=nullptr)
Definition: DataHandle.h:36
virtual void setOwner(IDataHandleHolder *o)
Definition: DataHandle.h:41
virtual const std::string & objKey() const
Definition: DataHandle.h:49
virtual Mode mode() const
Definition: DataHandle.h:44
virtual ~DataHandle()=default
void updateKey(const std::string &key)
Definition: DataObjID.h:98
virtual void setKey(const DataObjID &key) const
Definition: DataHandle.h:46
STL class.
virtual const DataObjID & fullKey() const
Definition: DataHandle.h:50
DataObjID m_key
The key of the object behind this DataHandle Although it may look strange to have it mutable...
Definition: DataHandle.h:68
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:28
const std::string & key() const
Definition: DataObjID.h:49
IDataHandleHolder * m_owner
Definition: DataHandle.h:69
virtual bool isCondition() const
Definition: DataHandle.h:59
DataHandle(const DataObjID &k, Mode a=Reader, IDataHandleHolder *owner=nullptr)
Definition: DataHandle.h:33
virtual std::string pythonRepr() const
Definition: DataHandle.cpp:10
virtual StatusCode commit()
Definition: DataHandle.h:53
virtual bool init()
Definition: DataHandle.h:56
virtual void updateKey(const std::string &key) const
Definition: DataHandle.h:47
Helper functions to set/get the application return code.
Definition: __init__.py:1
virtual IDataHandleHolder * owner() const
Definition: DataHandle.h:42