All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
RootObjAddress.h
Go to the documentation of this file.
1 #ifndef ROOTHISTCNV_ROOTOBJADDRESS_H
2 #define ROOTHISTCNV_ROOTOBJADDRESS_H 1
3 
5 
6 class TObject;
7 
8 namespace RootHistCnv {
9 
11 
12 
13  protected:
14 
15  unsigned long m_refCount;
17  long m_svcType;
23  unsigned long m_ipar[2];
27  TObject* m_tObj;
28 
29  public:
30 
33  : m_refCount(0),
34  m_svcType(0),
35  m_clID(0),
36  m_pRegistry(0),
37  m_tObj(0)
38  {
39  m_ipar[0]=m_ipar[1]=0xFFFFFFFF;
40  }
41 
43  : IOpaqueAddress(copy),
44  m_refCount(0),
45  m_svcType(copy.m_svcType),
46  m_clID(copy.m_clID),
47  m_pRegistry(copy.m_pRegistry),
48  m_tObj(copy.m_tObj)
49  {
50  m_par[0] = copy.m_par[0];
51  m_par[1] = copy.m_par[1];
52  m_ipar[0] = copy.m_ipar[0];
53  m_ipar[1] = copy.m_ipar[1];
54  }
55 
57  RootObjAddress( long svc,
58  const CLID& clid,
59  const std::string& p1="",
60  const std::string& p2="",
61  unsigned long ip1=0,
62  unsigned long ip2=0,
63  TObject* tObj=0 )
64  : m_refCount(0),
65  m_svcType(svc),
66  m_clID(clid),
67  m_pRegistry(0),
68  m_tObj(tObj)
69  {
70  m_par[0] = p1;
71  m_par[1] = p2;
72  m_ipar[0] = ip1;
73  m_ipar[1] = ip2;
74  }
75 
77  ~RootObjAddress() override = default;
78 
80  unsigned long addRef () override {
81  return ++m_refCount;
82  }
83 
84  unsigned long release () override {
85  int cnt = --m_refCount;
86  if ( 0 == cnt ) delete this;
87  return cnt;
88  }
90  IRegistry* registry() const override {
91  return m_pRegistry;
92  }
94  void setRegistry(IRegistry* pRegistry) override {
95  m_pRegistry = pRegistry;
96  }
98  const CLID& clID() const override {
99  return m_clID;
100  }
102  virtual void setClID(const CLID& clid) {
103  m_clID = clid;
104  }
106  long svcType() const override {
107  return m_svcType;
108  }
110  virtual void setSvcType(long typ) {
111  m_svcType = typ;
112  }
114  const std::string* par() const override {
115  return m_par;
116  }
118  const unsigned long* ipar() const override {
119  return m_ipar;
120  }
121 
123  virtual TObject* tObj() const {
124  return m_tObj;
125  }
126 
127  };
128 }
129 
130 #endif
const unsigned long * ipar() const override
Retrieve integer parameters.
unsigned long release() override
release reference to object
IRegistry * m_pRegistry
Pointer to corresponding directory.
virtual void setClID(const CLID &clid)
Access : Set class ID of the link.
unsigned long m_ipar[2]
Integer parameters to be accessed.
~RootObjAddress() override=default
Standard Destructor.
std::string m_par[2]
String parameters to be accessed.
void setRegistry(IRegistry *pRegistry) override
Set pointer to directory.
STL class.
long svcType() const override
Access : retrieve the storage type of the class id.
const std::string * par() const override
Retrieve string parameters.
RootObjAddress()
Dummy constructor.
virtual void setSvcType(long typ)
Access : set the storage type of the class id.
IRegistry * registry() const override
Pointer to directory.
RootObjAddress(const RootObjAddress &copy)
virtual TObject * tObj() const
Retrieve TObject* ptr.
The IRegistry represents the entry door to the environment any data object residing in a transient da...
Definition: IRegistry.h:22
unsigned int CLID
Class ID definition.
Definition: ClassID.h:8
TObject * m_tObj
Pointer to TObject.
const CLID & clID() const override
Access : Retrieve class ID of the link.
RootObjAddress(long svc, const CLID &clid, const std::string &p1="", const std::string &p2="", unsigned long ip1=0, unsigned long ip2=0, TObject *tObj=0)
Standard Constructor.
long m_svcType
Storage type.
unsigned long addRef() override
Add reference to object.
Opaque address interface definition.