00001 //==================================================================== 00002 // DbSession class definition 00003 //-------------------------------------------------------------------- 00004 // 00005 // Package : DbCnv ( The LHCb Offline System) 00006 // 00007 // Description: Definiiton of a database session and related classes 00008 // 00009 // Author : M.Frank 00010 //==================================================================== 00011 #ifndef DBCNV_DBSESSION_H 00012 #define DBCNV_DBSESSION_H 00013 00014 // Framework include files 00015 #ifndef DBCNV_DBBASE_H 00016 #include "GaudiDb/DbBase.h" 00017 #endif // DBCNV_DBBASE_H 00018 00019 #ifndef DBCNV_DBFEDERATION_H 00020 #include "GaudiDb/DbFederation.h" 00021 #endif // DBCNV_DBFEDERATION_H 00022 00023 // Forward declarations 00024 class DbSession; 00025 class DbFederation; 00026 class DbSessionImpl; 00027 class IDbSession; 00028 class IOODataBase; 00029 template <class T> class dbHandle; 00030 template <> class dbHandle<DbSession>; 00031 00053 template <> class dbHandle<DbSession> : public dbHandleBase<DbSession> { 00054 public: 00056 friend class DbSession; 00057 friend class DbSessionImplementation; 00058 private: 00060 mutable DbAccessMode m_mode; 00061 private: 00063 void switchPtr(_DataType* obj) const; 00065 IDbSession* info() const; 00067 dbHandle(DbSession* session); 00068 public: 00070 dbHandle(unsigned char type); 00072 dbHandle(const dbHandle<DbSession>& copy); 00074 virtual ~dbHandle(); 00076 dbHandle& operator=(const dbHandle<DbSession>& copy); 00078 DbAccessMode openMode() const; 00080 const char* typeName() const; 00082 DbResult open(IOODataBase* db, IMessageSvc* msg, DbAccessMode mode); 00084 DbResult close() const; 00086 DbResult add(const std::string& name, DbFederation* fed) const; 00088 DbFederation* find(const std::string& name) const; 00090 DbResult remove(DbFederation* fed); 00092 IOODataBase* db(); 00094 IMessageSvc* msgSvc(); 00095 }; 00096 #endif // DBCNV_DBSESSION_H
1.2.3 written by Dimitri van Heesch,
© 1997-2000