Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members  

DbCnvSvc.h

Go to the documentation of this file.
00001 //====================================================================
00002 //      DbCnvSvc definition
00003 //--------------------------------------------------------------------
00004 //
00005 //      Package    : System ( The LHCb Offline System)
00006 //
00007 //  Description: 
00008 //
00009 //      Author     : M.Frank
00010 //====================================================================
00011 #ifndef DBCNV_DBCNVSVC_H
00012 #define DBCNV_DBCNVSVC_H
00013 // $Header: /nfs/slac/g/glast/ground/cvs/GaudiDb/src/Services/DbCnvSvc.h,v 1.1.1.1 2001/04/18 21:13:35 tlindner Exp $
00014 
00015 // Framework include files
00016 #include "GaudiKernel/AddrFactory.h"
00017 #include "GaudiKernel/ConversionSvc.h"
00018 
00019 // Db include files
00020 #include "GaudiDb/IDataBaseMgr.h"
00021 #include "GaudiDb/DbSession.h"
00022 #include "GaudiDb/DbDataBase.h"
00023 #include "GaudiDb/DbFederation.h"
00024 
00025 // Forward declarations
00026 template <class ConcreteService> class SvcFactory;
00027 class IOODataBase;
00028 
00052 class DbCnvSvc : public ConversionSvc, 
00053                  virtual public IDataBaseMgr,
00054                  virtual public IAddrFactory
00055 {
00057   friend SvcFactory<DbCnvSvc>;
00058 protected:
00060   IOODataBase*            m_dbase;
00062   dbHandle<DbSession>     m_session;
00064   dbHandle<DbFederation>  m_federation;
00066   dbHandle<DbDataBase>    m_output;
00068   std::string             m_fddbName;
00070   std::string             m_implementation;
00072   std::string             m_serverConnect;
00074   DbCnvSvc(const std::string& name, ISvcLocator* svc);
00076   virtual ~DbCnvSvc();
00077 
00078 public:
00080   virtual StatusCode queryInterface(const IID& riid, void** ppvInterface);
00082   virtual StatusCode initialize();
00084   virtual StatusCode finalize();
00086   virtual const ICnvFactory* findCnvFactory(const CLID& wanted);
00088   virtual IConverter* createConverter(const ICnvFactory& fac);
00089 
00091   virtual dbHandle<DbDataBase>& defaultDbHdl()   {
00092     return m_output;
00093   }
00095   virtual dbHandle<DbSession>&  defaultSessionHdl()   {
00096     return m_session;
00097   }
00099   virtual dbHandle<DbFederation>&  defaultFederationHdl()   {
00100     return m_federation;
00101   }
00106   virtual StatusCode connectOutput(const std::string& fname);
00107 
00114   virtual IOpaqueAddress* instantiate(const CLID& /* classId */ , 
00115                                       const std::string& /* fileName */, 
00116                                       const std::string& /* contName */, 
00117                                       int /* seqId */  ) const    {
00118     return 0;
00119   }
00130   virtual IOpaqueAddress* instantiate(const GenericLinkBase& link,
00131                                       const std::string& dbName, 
00132                                       const std::string& containerName,
00133                                       const std::string& objectName) const;
00138   virtual StatusCode requestImplementation(IOODataBase*& accessor);
00140   virtual IOODataBase* implementation();
00147   virtual dbIter<DbObject>* createIterator(const std::string& dbName, const std::string& cntName, DbAccessMode mode);
00148 };
00149 
00150 #endif  // DBCNV_DBCNVSVC_H

Generated at Wed Nov 21 12:22:19 2001 by doxygen1.2.3 written by Dimitri van Heesch, © 1997-2000