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

DbFederationObj.h

Go to the documentation of this file.
00001 //====================================================================
00002 //      DbFederation object definition
00003 //--------------------------------------------------------------------
00004 //
00005 //      Package    : DbCnv ( The LHCb Offline System)
00006 //      Author     : M.Frank
00007 //====================================================================
00008 #ifndef DBCNV_DBFEDERATIONOBJ_H
00009 #define DBCNV_DBFEDERATIONOBJ_H 1
00010 
00011 // Framework include files
00012 #include "GaudiDb/DbAccessObj.h"
00013 #include "GaudiDb/DbFederation.h"
00014 
00015 class IOODataBase;
00016 class DbSession;
00017 class DbFederation;
00018 class DbDataBase;
00019 template <class T> class dbHandle;
00020 //template <> class dbHandle<DbSession>;
00021 //template <> class dbHandle<DbFederation>;
00022 //template <> class dbHandle<DbDataBase>;
00023 
00045 class DbFederation : public  DbAccessObj<std::string, DbDataBase >  {
00047   friend DbFederationImpl;
00048   friend dbHandle<DbFederation>;
00049 private:
00051   IDbFederation*              m_info;
00053   mutable dbHandle<DbSession> m_session;
00055   IOODataBase*                m_dbOOMs;
00057   IMessageSvc*                m_msgSvc;
00058 
00059 private:
00061   DbFederation(const dbHandle<DbSession>& session, const std::string& name, DbAccessMode mode = DbOOMs::READ);
00063   virtual ~DbFederation();
00065   dbHandle<DbSession>& session();
00067   const dbHandle<DbSession>& session()  const;
00069   IDbFederation* info()  const;
00071   IOODataBase* db();
00073   IMessageSvc* msgSvc();
00075   bool existsDbase( const std::string& name )   const;
00077   DbResult closeDataBases()  const;
00079   DbResult close()    const;
00081   DbResult open()   const;
00082 };
00083 
00084 // Access session handle
00085 inline dbHandle<DbSession>& DbFederation::session()  {
00086   return m_session;
00087 }
00088 
00089 // Access session handle (CONST)
00090 inline const dbHandle<DbSession>& DbFederation::session()  const  {
00091   return m_session;
00092 }
00093 
00094 // Access to technology dependent implementation
00095 inline IDbFederation* DbFederation::info()  const    {
00096   return m_info;
00097 }
00098 
00099 // Allow access to the database implementation
00100 inline IOODataBase* DbFederation::db()   {
00101   return m_dbOOMs;
00102 }
00103 
00104 // Allow access to the message service
00105 inline IMessageSvc* DbFederation::msgSvc()   {
00106   return m_msgSvc;
00107 }
00108 #endif // DBCNV_DBFEDERATIONOBJ_H

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