--- parser3/src/include/pa_sql_driver_manager.h 2001/04/04 10:53:55 1.1 +++ parser3/src/include/pa_sql_driver_manager.h 2001/05/17 18:26:22 1.7 @@ -1,11 +1,11 @@ /** @file - Parser: sql driver manager decls. + Parser: sql driver manager decl. Copyright (c) 2001 ArtLebedev Group (http://www.artlebedev.com) Author: Alexander Petrosyan (http://design.ru/paf) - $Id: pa_sql_driver_manager.h,v 1.1 2001/04/04 10:53:55 paf Exp $ + $Id: pa_sql_driver_manager.h,v 1.7 2001/05/17 18:26:22 parser Exp $ global sql driver manager, must be thread-safe @@ -14,11 +14,11 @@ #ifndef PA_SQL_DRIVER_MANAGER_H #define PA_SQL_DRIVER_MANAGER_H +#include "pa_config_includes.h" #include "pa_pool.h" #include "pa_sql_driver.h" #include "pa_hash.h" #include "pa_stack.h" -#include "pa_threads.h" #include "pa_table.h" #include "pa_string.h" @@ -31,7 +31,8 @@ public: SQL_Driver_manager(Pool& pool) : Pooled(pool), driver_cache(pool), - connection_cache(pool) { + connection_cache(pool), + prev_expiration_pass_time(0) { } /** @@ -39,7 +40,7 @@ public: using driver dynamic library found in table, if not loaded yet checks driver version */ - SQL_Connection& get_connection(const String& url, Table *protocol2library); + SQL_Connection& get_connection(const String& url, Table *protocol2driver_and_client); private: // driver cache @@ -50,6 +51,9 @@ private: // connection cache SQL_Connection *get_connection_from_cache(const String& url); void put_connection_to_cache(const String& url, SQL_Connection& connection); + void maybe_expire_connection_cache(); +private: + time_t prev_expiration_pass_time; private: // for SQL_Connection @@ -65,32 +69,4 @@ private: /// global extern SQL_Driver_manager *SQL_driver_manager; - -/// sql connection -class SQL_Connection : public Pooled { - -public: - - SQL_Connection(Pool& pool, - SQL_Driver& adriver, void *ainfo, const String& aurl) : Pooled(pool), - fdriver(adriver), - finfo(ainfo), - furl(aurl) { - } - - void close() { - SQL_driver_manager->close_connection(furl, *this); - } - - void disconnect() { - fdriver.disconnect(finfo); - } - -private: - - SQL_Driver& fdriver; - void *finfo; - const String& furl; -}; - #endif