--- parser3/src/include/pa_sql_driver_manager.h 2001/09/14 15:41:59 1.9 +++ parser3/src/include/pa_sql_driver_manager.h 2001/11/05 11:46:25 1.16 @@ -1,14 +1,11 @@ /** @file 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) - Author: Alexander Petrosyan (http://design.ru/paf) - - $Id: pa_sql_driver_manager.h,v 1.9 2001/09/14 15:41:59 parser Exp $ - - - global sql driver manager, must be thread-safe + $Id: pa_sql_driver_manager.h,v 1.16 2001/11/05 11:46:25 paf Exp $ */ #ifndef PA_SQL_DRIVER_MANAGER_H @@ -18,10 +15,9 @@ #include "pa_pool.h" #include "pa_sql_driver.h" #include "pa_hash.h" -#include "pa_stack.h" #include "pa_table.h" #include "pa_string.h" - +#include "pa_status_provider.h" // defines @@ -32,27 +28,21 @@ class SQL_Connection; -/** sql driver manager - maintains - - driver cache which never expires - - connection cache unused connections got expired -*/ -class SQL_Driver_manager : public Pooled { - friend SQL_Connection; +/// sql driver manager +class SQL_Driver_manager : public Pooled, public Status_provider { + friend class SQL_Connection; public: - SQL_Driver_manager(Pool& pool) : Pooled(pool), - driver_cache(pool), - connection_cache(pool), - prev_expiration_pass_time(0) { - } + SQL_Driver_manager(Pool& apool); + ~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, Table *protocol2driver_and_client); + SQL_Connection& get_connection(const String& url, const String& request_origin, + Table *protocol2driver_and_client); private: // driver cache @@ -76,6 +66,11 @@ private: Hash driver_cache; Hash connection_cache; + +public: // Status_provider + + virtual Value& get_status(Pool& pool, const String *source); + }; /// global