![]() |
|
|
Generated: 18 Jul 2008 |
00001 // $Id: IPoolDbMgr.h,v 1.7 2008/02/21 18:01:54 hmd Exp $ 00002 //==================================================================== 00003 // IPoolDbMgr.h 00004 //-------------------------------------------------------------------- 00005 // 00006 // Author : M.Frank 00007 //==================================================================== 00008 // $Header: /local/reps/Gaudi/GaudiPoolDb/GaudiPoolDb/IPoolDbMgr.h,v 1.7 2008/02/21 18:01:54 hmd Exp $ 00009 #ifndef POOLDB_IPOOLDBMGR_H 00010 #define POOLDB_IPOOLDBMGR_H 00011 00012 // C/C++ include files 00013 #include <string> 00014 00015 // Framework include files 00016 #include "GaudiKernel/IInterface.h" 00017 #include "GaudiKernel/ClassID.h" 00018 #include "GaudiUtils/IIODataManager.h" 00019 #include "StorageSvc/DbContainer.h" 00020 00021 // Forward declarations 00022 class DataObject; 00023 class PoolDbAddress; 00024 class IOpaqueAddress; 00025 class ContainedObject; 00026 class IPoolCacheSvc; 00027 00028 namespace pool { 00029 class DataCallBack; 00030 class DbSelect; 00031 class DbType; 00032 class Token; 00033 class Guid; 00034 } 00035 namespace seal { 00036 namespace reflex { 00037 class Type; 00038 } 00039 }; 00040 00041 static const InterfaceID IID_IPoolDbMgr("IPoolDbMgr", 1 , 0); 00042 00053 class IPoolDbMgr : virtual public IInterface { 00054 public: 00055 00056 enum { UNKNOWN = Gaudi::IIODataManager::UNKNOWN, 00057 PFN = Gaudi::IIODataManager::PFN, 00058 LFN = Gaudi::IIODataManager::LFN, 00059 FID = Gaudi::IIODataManager::FID 00060 }; 00061 enum { BAD_DATA_CONNECTION=Gaudi::IDataConnection::BAD_DATA_CONNECTION }; 00062 00064 static const InterfaceID& interfaceID() { return IID_IPoolDbMgr; } 00065 00067 virtual IPoolCacheSvc* cacheSvc() const = 0; 00068 00078 virtual StatusCode accessStorageType(const std::string& type_string, 00079 long& gaudi_type) = 0; 00080 00096 virtual StatusCode createAddress(long svc_type, 00097 const CLID& clid, 00098 const std::string* par, 00099 const unsigned long* ipar, 00100 IOpaqueAddress*& refpAddress) = 0; 00101 00110 virtual StatusCode createAddress(pool::Token* pToken, 00111 PoolDbAddress** ppAddress) = 0; 00118 virtual StatusCode connectOutput(const std::string& outputFile, 00119 const std::string& openMode) = 0; 00120 00130 virtual StatusCode commitOutput( const std::string& outputFile, 00131 bool do_commit) = 0; 00132 00141 virtual StatusCode connect(const std::string& dbName, 00142 const std::string& cntName, 00143 pool::DbContainer& cntH) = 0; 00144 00156 virtual StatusCode connectContainer(int typ, 00157 const std::string& dbName, 00158 const std::string& cntName, 00159 pool::DbAccessMode openMode, 00160 const pool::DbTypeInfo* shape, 00161 pool::DbContainer& cntH 00162 )=0; 00163 00171 virtual pool::DbSelect* createSelect(const std::string& criteria, 00172 const std::string& dbName, 00173 const std::string& cntName) = 0; 00174 00180 virtual StatusCode disconnect( const std::string& dbName) = 0; 00181 00190 virtual StatusCode markWrite( pool::DataCallBack* call, 00191 const std::string& cntName, 00192 PoolDbAddress** ppAddr=0) = 0; 00193 00200 virtual StatusCode markUpdate( pool::DataCallBack* call, 00201 PoolDbAddress* pAddr) = 0; 00202 00209 virtual StatusCode read( pool::DataCallBack* call, 00210 PoolDbAddress* pAddr) = 0; 00211 00213 00218 virtual StatusCode read( pool::DataCallBack* call, 00219 pool::Token& tok) = 0; 00220 }; 00221 00222 #endif // POOLDB_IPOOLDBMGR_H