![]() |
|
|
Generated: 8 Jan 2009 |
00001 // $Id: PoolDbBaseCnv.h,v 1.6 2006/09/28 16:57:56 hmd Exp $ 00002 //==================================================================== 00003 // PoolDbBaseCnv definition 00004 // 00005 // Author : M.Frank 00006 //==================================================================== 00007 #ifndef POOLDB_POOLDBBASECNV_H 00008 #define POOLDB_POOLDBBASECNV_H 00009 // $Header: /tmp/svngaudi/tmp.jEpFh25751/Gaudi/GaudiPoolDb/GaudiPoolDb/PoolDbBaseCnv.h,v 1.6 2006/09/28 16:57:56 hmd Exp $" 00010 00011 // Framework include files 00012 #include "GaudiKernel/Converter.h" 00013 #include "Reflex/Reflex.h" 00014 #include "POOLCore/Guid.h" 00015 #include <set> 00016 00017 // Forward declarations 00018 class LinkManager; 00019 class IPoolDbMgr; 00020 class IDataManagerSvc; 00021 class ContainedObject; 00022 00023 class PoolDbAddress; 00024 class PoolDbLinkManager; 00025 class PoolDbDataObjectHandler; 00026 00027 namespace pool { 00028 class DataCallBack; 00029 } 00030 00045 class PoolDbBaseCnv : public Converter { 00046 protected: 00048 IPoolDbMgr* m_dbMgr; 00050 IDataManagerSvc* m_dataMgr; 00052 pool::Guid m_objGuid; 00054 ROOT::Reflex::Type m_class; 00056 pool::DataCallBack* m_call; 00058 std::set<std::string> m_badFiles; 00059 protected: 00060 00067 StatusCode makeError(const std::string& msg, bool rethrow=true); 00068 00074 virtual const std::string containerName(IRegistry* pReg) const; 00075 00076 public: 00077 00085 PoolDbBaseCnv(long typ, const CLID& clid, ISvcLocator* svc); 00086 00088 virtual ~PoolDbBaseCnv(); 00089 00091 virtual StatusCode initialize(); 00092 00094 virtual StatusCode finalize(); 00095 00097 virtual long repSvcType() const { 00098 return i_repSvcType(); 00099 } 00100 00108 virtual StatusCode createObj( IOpaqueAddress* pAddr, 00109 DataObject*& refpObj); 00110 00119 virtual StatusCode fillObjRefs( IOpaqueAddress* pAddr, 00120 DataObject* pObj); 00121 00129 virtual StatusCode updateObj( IOpaqueAddress* pAddr, 00130 DataObject* pObj); 00131 00140 virtual StatusCode updateObjRefs( IOpaqueAddress* pAddr, 00141 DataObject* pObj); 00142 00151 virtual StatusCode createRep( DataObject* pObj, 00152 IOpaqueAddress*& refpAddr); 00153 00161 virtual StatusCode fillRepRefs( IOpaqueAddress* pAddr, 00162 DataObject* pObj); 00163 00172 virtual StatusCode updateRep( IOpaqueAddress* pAddr, 00173 DataObject* pObj); 00174 00183 virtual StatusCode updateRepRefs( IOpaqueAddress* pAddr, 00184 DataObject* pObj); 00185 00186 virtual PoolDbLinkManager* createReferences(DataObject* pObj); 00187 00196 virtual StatusCode setReferences(PoolDbLinkManager* pMgr, 00197 LinkManager* pLinks, 00198 DataObject* pObj, 00199 IRegistry* pReg); 00208 virtual StatusCode dumpReferences(PoolDbLinkManager* pMgr, 00209 LinkManager* pLinks, 00210 DataObject* pObj, 00211 IRegistry* pReg); 00212 }; 00213 00214 #endif // POOLDB_PoolDbBaseCnv_H