IPoolDbMgr.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef POOLDB_IPOOLDBMGR_H
00010 #define POOLDB_IPOOLDBMGR_H
00011
00012
00013 #include <string>
00014
00015
00016 #include "GaudiKernel/IInterface.h"
00017 #include "GaudiKernel/ClassID.h"
00018 #include "GaudiUtils/IIODataManager.h"
00019 #include "StorageSvc/DbContainer.h"
00020
00021
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
00051 class GAUDI_API IPoolDbMgr: virtual public IInterface {
00052 public:
00054 DeclareInterfaceID(IPoolDbMgr,2,0);
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 virtual IPoolCacheSvc* cacheSvc() const = 0;
00065
00075 virtual StatusCode accessStorageType(const std::string& type_string,
00076 long& gaudi_type) = 0;
00077
00093 virtual StatusCode createAddress(long svc_type,
00094 const CLID& clid,
00095 const std::string* par,
00096 const unsigned long* ipar,
00097 IOpaqueAddress*& refpAddress) = 0;
00098
00107 virtual StatusCode createAddress(pool::Token* pToken,
00108 PoolDbAddress** ppAddress) = 0;
00115 virtual StatusCode connectOutput(const std::string& outputFile,
00116 const std::string& openMode) = 0;
00117
00127 virtual StatusCode commitOutput( const std::string& outputFile,
00128 bool do_commit) = 0;
00129
00138 virtual StatusCode connect(const std::string& dbName,
00139 const std::string& cntName,
00140 pool::DbContainer& cntH) = 0;
00141
00153 virtual StatusCode connectContainer(int typ,
00154 const std::string& dbName,
00155 const std::string& cntName,
00156 pool::DbAccessMode openMode,
00157 const pool::DbTypeInfo* shape,
00158 pool::DbContainer& cntH
00159 )=0;
00160
00168 virtual pool::DbSelect* createSelect(const std::string& criteria,
00169 const std::string& dbName,
00170 const std::string& cntName) = 0;
00171
00177 virtual StatusCode disconnect( const std::string& dbName) = 0;
00178
00187 virtual StatusCode markWrite( pool::DataCallBack* call,
00188 const std::string& cntName,
00189 PoolDbAddress** ppAddr=0) = 0;
00190
00197 virtual StatusCode markUpdate( pool::DataCallBack* call,
00198 PoolDbAddress* pAddr) = 0;
00199
00206 virtual StatusCode read( pool::DataCallBack* call,
00207 PoolDbAddress* pAddr) = 0;
00208
00210
00215 virtual StatusCode read( pool::DataCallBack* call,
00216 pool::Token& tok) = 0;
00217 };
00218
00219 #endif // POOLDB_IPOOLDBMGR_H