![]() |
![]() |
00001 #ifndef CondCore_DBCommon_PoolConnectionProxy_H 00002 #define CondCore_DBCommon_PoolConnectionProxy_H 00003 #include "CondCore/DBCommon/interface/IConnectionProxy.h" 00004 #include "ITransactionObserver.h" 00005 #include <string> 00006 // 00007 // Package: DBCommon 00008 // Class : PoolConnectionProxy 00009 // 00013 // 00014 // Author: Zhen Xie 00015 // 00016 namespace pool{ 00017 class IDataSvc; 00018 class IFileCatalog; 00019 } 00020 namespace cond{ 00021 class ITransaction; 00022 class PoolTransaction; 00023 class PoolConnectionProxy : public IConnectionProxy, 00024 public ITransactionObserver{ 00025 public: 00026 PoolConnectionProxy(coral::IConnectionService* connectionServiceHandle, 00027 const std::string& con, 00028 int connectionTimeOut, 00029 int idleConnectionCleanupPeriod); 00030 ~PoolConnectionProxy(); 00032 ITransaction& transaction(); 00033 //bool isActive() const; 00034 //bool isReadOnly() const; 00035 //int connectionTimeOut() const; 00036 //std::string connectStr() const; 00037 pool::IDataSvc* poolDataSvc(); 00039 void reactOnStartOfTransaction( const ITransaction* ); 00040 void reactOnEndOfTransaction( const ITransaction* ); 00041 private: 00042 void connect(); 00043 void disconnect(); 00044 private: 00045 pool::IDataSvc* m_datasvc; 00046 cond::ITransaction* m_transaction; 00047 //std::string m_con; 00048 unsigned int m_transactionCounter; 00049 //int m_connectionTimeOut; 00050 //boost::timer m_timer; 00051 pool::IFileCatalog* m_catalog; 00052 }; 00053 } 00054 #endif