| # Gaudi Framework, version v21r7 |

Home |  | Generated: 22 Jan 2010

# IPoolDbMgr.h

Go to the documentation of this file.

    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: /tmp/svngaudi/tmp.jEpFh25751/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
    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