--- parser3/src/include/pa_sql_connection.h 2003/01/21 15:51:11 1.30 +++ parser3/src/include/pa_sql_connection.h 2003/01/27 16:00:41 1.30.2.1 @@ -8,7 +8,7 @@ #ifndef PA_SQL_CONNECTION_H #define PA_SQL_CONNECTION_H -static const char* IDENT_SQL_CONNECTION_H="$Date: 2003/01/21 15:51:11 $"; +static const char* IDENT_SQL_CONNECTION_H="$Date: 2003/01/27 16:00:41 $"; #include "pa_pool.h" #include "pa_sql_driver.h" @@ -28,13 +28,11 @@ static const char* IDENT_SQL_CONNECTION_ #endif /// SQL connection. handy wrapper around low level SQL_Driver -class SQL_Connection : public Pooled { - - friend class SQL_Connection_ptr; +class SQL_Connection: public PA_Object { public: - SQL_Connection(Pool& pool, const String& aurl, SQL_Driver& adriver) : Pooled(pool), + SQL_Connection(ConstStringPtr aurl, SQL_Driver& adriver) : Pooled(pool), furl(aurl), fdriver(adriver), fconnection(0), @@ -123,22 +121,6 @@ private: // closing process SQL_driver_manager->close_connection(furl, *this); } -private: // connection usage methods - - void use() { - time_used=time(0); // they started to use at this time - used++; - } - void unuse() { - used--; - if(!used) - close(); - } - -private: // connection usage data - - int used; - private: const String& furl; @@ -149,35 +131,4 @@ private: bool marked_to_rollback; }; -/// Auto-object used to track SQL_Connection usage -class SQL_Connection_ptr { - SQL_Connection *fconnection; -public: - explicit SQL_Connection_ptr(SQL_Connection *aconnection) : fconnection(aconnection) { - fconnection->use(); - } - ~SQL_Connection_ptr() { - fconnection->unuse(); - } - SQL_Connection* operator->() { - return fconnection; - } - SQL_Connection* get() const { - return fconnection; - } - - // copying - SQL_Connection_ptr(const SQL_Connection_ptr& src) : fconnection(src.fconnection) { - fconnection->use(); - } - SQL_Connection_ptr& operator =(const SQL_Connection_ptr& src) { - // may do without this=src check - fconnection->unuse(); - fconnection=src.fconnection; - fconnection->use(); - - return *this; - } -}; - #endif