Diff for /parser3/src/include/pa_sql_driver_manager.h between versions 1.18 and 1.27.4.1

version 1.18, 2001/11/08 14:47:31 version 1.27.4.1, 2003/09/24 14:32:06
Line 2 Line 2
         Parser: sql driver manager decl.          Parser: sql driver manager decl.
         global sql driver manager, must be thread-safe          global sql driver manager, must be thread-safe
   
         Copyright (c) 2001 ArtLebedev Group (http://www.artlebedev.com)          Copyright (c) 2001-2003 ArtLebedev Group (http://www.artlebedev.com)
         Author: Alexander Petrosyan <paf@design.ru> (http://paf.design.ru)          Author: Alexandr Petrosian <paf@design.ru> (http://paf.design.ru)
   
         $Id$  
 */  */
   
 #ifndef PA_SQL_DRIVER_MANAGER_H  #ifndef PA_SQL_DRIVER_MANAGER_H
 #define PA_SQL_DRIVER_MANAGER_H  #define PA_SQL_DRIVER_MANAGER_H
   
 #include "pa_config_includes.h"  static const char* IDENT_SQL_DRIVER_MANAGER_H="$Date$";
 #include "pa_pool.h"  
   
 #include "pa_sql_driver.h"  #include "pa_sql_driver.h"
 #include "pa_hash.h"  #include "pa_hash.h"
 #include "pa_table.h"  #include "pa_table.h"
 #include "pa_string.h"  #include "pa_string.h"
 #include "pa_cache_managers.h"  #include "pa_cache_managers.h"
   #include "pa_stack.h"
   
 // defines  // defines
   
Line 29 Line 29
 class SQL_Connection;  class SQL_Connection;
   
 /// sql driver manager  /// sql driver manager
 class SQL_Driver_manager : public Cache_manager {  class SQL_Driver_manager: public Cache_manager {
   public:
   
           typedef Hash<const String::Body, SQL_Driver *> driver_cache_type;
           typedef Stack<SQL_Connection*> connection_cache_element_base_type;
           typedef Hash<const String::Body, connection_cache_element_base_type*> connection_cache_type;
   
   private:
           
         friend class SQL_Connection;          friend class SQL_Connection;
   
           bool is_dlinited;
           driver_cache_type driver_cache;
           connection_cache_type connection_cache;
   
 public:  public:
   
         SQL_Driver_manager(Pool& apool);          SQL_Driver_manager();
         ~SQL_Driver_manager();          override ~SQL_Driver_manager();
   
         /**           /** 
                 connect to specified url,                   connect to specified url, 
                 using driver dynamic library found in table, if not loaded yet                  using driver dynamic library found in table, if not loaded yet
                 checks driver version                  checks driver version
         */          */
         SQL_Connection& get_connection(const String& url, const String& request_origin,          SQL_Connection* get_connection(const String& aurl, Table *protocol2driver_and_client);
                 Table *protocol2driver_and_client);  
   
 private: // driver cache  private: // driver cache
   
         SQL_Driver *get_driver_from_cache(const String& protocol);          SQL_Driver *get_driver_from_cache(driver_cache_type::key_type protocol);
         void put_driver_to_cache(const String& protocol, SQL_Driver& driver);          void put_driver_to_cache(driver_cache_type::key_type protocol, driver_cache_type::value_type driver);
   
 private: // connection cache  private: // connection cache
   
         SQL_Connection *get_connection_from_cache(const String& url);          SQL_Connection* get_connection_from_cache(connection_cache_type::key_type url);
         void put_connection_to_cache(const String& url, SQL_Connection& connection);          void put_connection_to_cache(connection_cache_type::key_type url, 
                   SQL_Connection* connection);
 private:  private:
         time_t prev_expiration_pass_time;          time_t prev_expiration_pass_time;
   
 private: // for SQL_Connection  private: // for SQL_Connection
   
         /// caches connection          /// caches connection
         void close_connection(const String& url, SQL_Connection& connection);          void close_connection(connection_cache_type::key_type url, 
                   SQL_Connection* connection);
 private:  
   
         Hash driver_cache;  
         Hash connection_cache;  
   
 public: // Cache_manager  public: // Cache_manager
   
         virtual Value& get_status(Pool& pool, const String *source);          override Value* get_status();
         virtual void maybe_expire_cache();          override void maybe_expire_cache();
   
 };  };
   
 /// global  /// global
 extern SQL_Driver_manager *SQL_driver_manager;  extern SQL_Driver_manager SQL_driver_manager;
   
 #endif  #endif

Removed from v.1.18  
changed lines
  Added in v.1.27.4.1


E-mail: