PoolDbAddress.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef POOLDB_POOLDBADDRESS_H
00010 #define POOLDB_POOLDBADDRESS_H
00011
00012
00013 #include "POOLCore/Token.h"
00014 #include "GaudiKernel/IOpaqueAddress.h"
00015
00016
00017 namespace pool {
00018 class DataCallBack;
00019 class Token;
00020 }
00021
00032 class GAUDI_API PoolDbAddress: virtual public IOpaqueAddress {
00033 protected:
00035 unsigned long m_refCount;
00037 IRegistry* m_pRegistry;
00039 mutable std::string m_par[3];
00041 mutable unsigned long m_ipar[2];
00043 pool::DataCallBack* m_handler;
00045 pool::Token* m_token;
00046
00047 public:
00049 PoolDbAddress(pool::Token* aToken);
00051 virtual ~PoolDbAddress();
00052
00055
00056 virtual unsigned long addRef() { return ++m_refCount; }
00058 virtual unsigned long release();
00060 const CLID& clID() const { return *(CLID*)&m_token->classID().Data1;}
00062 long svcType() const { return m_token->technology(); }
00064 virtual const std::string* par() const;
00066 virtual const unsigned long* ipar() const;
00068 virtual IRegistry* registry() const { return m_pRegistry; }
00070
00072 pool::DataCallBack* handler() const { return m_handler; }
00074 void setHandler(pool::DataCallBack* h);
00076 pool::Token* token() { return m_token; }
00078 bool isValid() const;
00080 virtual void setRegistry(IRegistry* pReg) { m_pRegistry = pReg; }
00081 };
00082 #endif // POOLDB_PoolDbAddress_H