|
Gaudi Framework, version v21r7 |
| Home | Generated: 22 Jan 2010 |
#include <PoolDbDataConnection.h>

Public Member Functions | |
| PoolDbDataConnection (IInterface *owner, const std::string &nam, int typ, int mode, pool::DbDomain &domH) | |
| Standard constructor. | |
| virtual | ~PoolDbDataConnection () |
| Standard destructor. | |
| pool::DbDatabase & | database () |
| Access to POOL database handle. | |
| pool::DbTransaction & | transaction () |
| Access to POOL transaction handle. | |
| virtual bool | isConnected () const |
| Check if connected to data source. | |
| virtual StatusCode | connectRead () |
| Open data stream in read mode. | |
| virtual StatusCode | connectWrite (IoType) |
| Open data stream in write mode. | |
| virtual StatusCode | disconnect () |
| Release data stream. | |
| virtual StatusCode | read (void *const , size_t) |
| Read raw byte buffer from input stream. | |
| virtual StatusCode | write (const void *, int) |
| Write raw byte buffer to output stream. | |
| virtual long long int | seek (long long int, int) |
| Seek on the file described by ioDesc. Arguments as in seek(). | |
Protected Member Functions | |
| virtual StatusCode | i_connect () |
| Internal connect call. | |
Protected Attributes | |
| int | m_type |
| int | m_mode |
| Datasource access mode. | |
| pool::DbTransaction | m_transaction |
| Transaction handle for this data source. | |
| pool::DbDatabase | m_dbH |
| Database handle for this data source. | |
| pool::DbDomain | m_domH |
| Domain handle specifying the storage domain. | |
This entity interacts with the IODataManager from the GaudiUtils package and allows to connect refereneces between objects stored in POOL files.
M.Frank
Definition at line 29 of file PoolDbDataConnection.h.
| PoolDbDataConnection::PoolDbDataConnection | ( | IInterface * | owner, | |
| const std::string & | nam, | |||
| int | typ, | |||
| int | mode, | |||
| pool::DbDomain & | domH | |||
| ) |
Standard constructor.
Definition at line 34 of file PoolDbDataConnection.cpp.
00035 : IDataConnection(own,nam), m_type(typ), m_mode(mode), m_domH(domH) 00036 { 00037 s_connectionCount->increment(); 00038 if ( typ == Gaudi::IIODataManager::FID && strncmp(nam.c_str(),"FID:",4) != 0 ) { 00039 m_name = "FID:"+nam; 00040 } 00041 }
| PoolDbDataConnection::~PoolDbDataConnection | ( | ) | [virtual] |
Standard destructor.
Definition at line 44 of file PoolDbDataConnection.cpp.
00044 { 00045 s_connectionCount->decrement(); 00046 }
| StatusCode PoolDbDataConnection::i_connect | ( | ) | [protected, virtual] |
Internal connect call.
Open data stream.
Definition at line 49 of file PoolDbDataConnection.cpp.
00049 { 00050 DbAccessMode mode = (DbAccessMode)m_mode; 00051 bool open_existing = isEqualMode(mode,pool::READ)||isEqualMode(mode,pool::UPDATE)||(1<<4); 00052 m_dbH = DbDatabase(m_domH.find(fid())); 00053 if ( !m_dbH.isValid() ) { 00054 std::string true_fid; 00055 pool::DbStatus sc = m_dbH.open(m_domH, pfn(), fid(), mode); 00056 if ( sc.isSuccess() && open_existing ) { 00057 m_dbH.param("FID",true_fid); 00058 if ( fid() == pfn() ) { 00059 m_fid = true_fid; 00060 m_dbH.close(); 00061 sc = m_dbH.open(m_domH, pfn(), fid(), mode); 00062 } 00063 else if ( strcasecmp(true_fid.c_str(),fid().c_str()) != 0 ) { 00064 m_dbH.close(); 00065 throw std::runtime_error("FID mismatch:\n\t\t\t\tFID="+ 00066 fid()+" (catalog) <> \n\t\t\t\t"+ 00067 true_fid+" (file) for PFN="+pfn()); 00068 return BAD_DATA_CONNECTION; 00069 } 00070 } 00071 else if ( open_existing ) { 00072 return BAD_DATA_CONNECTION; 00073 } 00074 return sc.isSuccess() ? StatusCode::SUCCESS : StatusCode::FAILURE; 00075 } 00076 return StatusCode::SUCCESS; 00077 }
| pool::DbDatabase& PoolDbDataConnection::database | ( | ) | [inline] |
Access to POOL database handle.
Definition at line 49 of file PoolDbDataConnection.h.
00049 { return m_dbH; }
| pool::DbTransaction& PoolDbDataConnection::transaction | ( | ) | [inline] |
Access to POOL transaction handle.
Definition at line 51 of file PoolDbDataConnection.h.
00051 { return m_transaction; }
| virtual bool PoolDbDataConnection::isConnected | ( | ) | const [inline, virtual] |
| virtual StatusCode PoolDbDataConnection::connectRead | ( | ) | [inline, virtual] |
Open data stream in read mode.
Definition at line 55 of file PoolDbDataConnection.h.
00055 { return i_connect(); }
| virtual StatusCode PoolDbDataConnection::connectWrite | ( | IoType | ) | [inline, virtual] |
Open data stream in write mode.
Definition at line 57 of file PoolDbDataConnection.h.
00057 {return i_connect(); }
| StatusCode PoolDbDataConnection::disconnect | ( | ) | [virtual] |
Release data stream.
Definition at line 80 of file PoolDbDataConnection.cpp.
00080 { 00081 if ( m_dbH.isValid() ) { 00082 m_dbH.close(); 00083 m_dbH = DbDatabase(pool::POOL_StorageType); 00084 return StatusCode::SUCCESS; 00085 } 00086 return StatusCode::FAILURE; 00087 }
| virtual StatusCode PoolDbDataConnection::read | ( | void * | const, | |
| size_t | ||||
| ) | [inline, virtual] |
Read raw byte buffer from input stream.
Definition at line 61 of file PoolDbDataConnection.h.
00062 { return StatusCode::FAILURE; }
| virtual StatusCode PoolDbDataConnection::write | ( | const void * | , | |
| int | ||||
| ) | [inline, virtual] |
Write raw byte buffer to output stream.
Definition at line 64 of file PoolDbDataConnection.h.
00065 { return StatusCode::FAILURE; }
| virtual long long int PoolDbDataConnection::seek | ( | long long | int, | |
| int | ||||
| ) | [inline, virtual] |
Seek on the file described by ioDesc. Arguments as in seek().
Definition at line 67 of file PoolDbDataConnection.h.
int PoolDbDataConnection::m_type [protected] |
Definition at line 31 of file PoolDbDataConnection.h.
int PoolDbDataConnection::m_mode [protected] |
pool::DbDatabase PoolDbDataConnection::m_dbH [protected] |
pool::DbDomain PoolDbDataConnection::m_domH [protected] |