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
1.2.3 written by Dimitri van Heesch,
© 1997-2000