--- parser3/src/include/pa_sql_driver_manager.h 2001/11/05 11:46:25 1.16 +++ parser3/src/include/pa_sql_driver_manager.h 2002/02/08 08:30:14 1.23 @@ -2,22 +2,21 @@ Parser: sql driver manager decl. global sql driver manager, must be thread-safe - Copyright (c) 2001 ArtLebedev Group (http://www.artlebedev.com) - Author: Alexander Petrosyan (http://paf.design.ru) + Copyright (c) 2001, 2002 ArtLebedev Group (http://www.artlebedev.com) + Author: Alexandr Petrosian (http://paf.design.ru) - $Id: pa_sql_driver_manager.h,v 1.16 2001/11/05 11:46:25 paf Exp $ + $Id: pa_sql_driver_manager.h,v 1.23 2002/02/08 08:30:14 paf Exp $ */ #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_table.h" #include "pa_string.h" -#include "pa_status_provider.h" +#include "pa_cache_managers.h" // defines @@ -27,21 +26,22 @@ // forwards class SQL_Connection; +class SQL_Connection_ptr; /// sql driver manager -class SQL_Driver_manager : public Pooled, public Status_provider { +class SQL_Driver_manager : public Cache_manager { friend class SQL_Connection; public: SQL_Driver_manager(Pool& apool); - ~SQL_Driver_manager(); + virtual ~SQL_Driver_manager(); /** connect to specified url, using driver dynamic library found in table, if not loaded yet checks driver version */ - SQL_Connection& get_connection(const String& url, const String& request_origin, + SQL_Connection_ptr get_connection(const String& url, const String& request_origin, Table *protocol2driver_and_client); private: // driver cache @@ -53,7 +53,6 @@ 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; @@ -67,9 +66,10 @@ private: Hash driver_cache; Hash connection_cache; -public: // Status_provider +public: // Cache_manager virtual Value& get_status(Pool& pool, const String *source); + virtual void maybe_expire_cache(); };