Gaudi Framework, version v20r4

Generated: 8 Jan 2009

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

Generated at Thu Jan 8 17:44:22 2009 for Gaudi Framework, version v20r4 by Doxygen version 1.5.6 written by Dimitri van Heesch, © 1997-2004