| # Gaudi Framework, version v20r3
Generated: 24 Nov 2008

# PoolDbBaseCnv.h

Go to the documentation of this file.

    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: /local/reps/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