PoolDbBaseCnv.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007 #ifndef POOLDB_POOLDBBASECNV_H
00008 #define POOLDB_POOLDBBASECNV_H
00009
00010
00011
00012 #include "GaudiKernel/Converter.h"
00013 #include "Reflex/Reflex.h"
00014 #include "POOLCore/Guid.h"
00015 #include <set>
00016
00017
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 GAUDI_API 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