The Gaudi Framework  v30r3 (a5ef0a68)
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 
54  virtual std::string pythonRepr() const;
55  virtual bool init() { return true; }
56 
57  // is this a ConditionHandle?
58  virtual bool isCondition() const { return m_isCond; }
59 
60  protected:
67  mutable DataObjID m_key = {"NONE"};
69 
70  private:
72  bool m_isCond = false;
73  };
74 }
75 
76 #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:96
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:67
const std::string & key() const
Definition: DataObjID.h:49
IDataHandleHolder * m_owner
Definition: DataHandle.h:68
virtual bool isCondition() const
Definition: DataHandle.h:58
DataHandle(const DataObjID &k, Mode a=Reader, IDataHandleHolder *owner=nullptr)
Definition: DataHandle.h:33
virtual std::string pythonRepr() const
Definition: DataHandle.cpp:10
virtual bool init()
Definition: DataHandle.h:55
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