Annotation of parser3/src/include/pa_db_manager.h, revision 1.9

1.1       parser      1: /** @file
                      2:        Parser: sql driver manager decl.
                      3:        global sql driver manager, must be thread-safe
                      4: 
                      5:        Copyright (c) 2001 ArtLebedev Group (http://www.artlebedev.com)
1.8       paf         6:        Author: Alexander Petrosyan <paf@design.ru> (http://paf.design.ru)
1.1       parser      7: 
1.9     ! paf         8:        $Id: pa_db_manager.h,v 1.8 2001/11/05 11:46:24 paf Exp $
1.1       parser      9: */
                     10: 
1.3       paf        11: #ifndef PA_DB_MANAGER_H
                     12: #define PA_DB_MANAGER_H
1.1       parser     13: 
                     14: #include "pa_config_includes.h"
                     15: #include "pa_hash.h"
1.4       paf        16: #include "pa_db_connection.h"
1.9     ! paf        17: #include "pa_cache_managers.h"
1.5       paf        18: 
1.1       parser     19: // defines
                     20: 
                     21: // forwards
                     22: 
                     23: /// sql driver manager
1.9     ! paf        24: class DB_Manager : public Pooled, public Cache_manager {
1.6       paf        25:        friend class DB_Connection;
1.1       parser     26: public:
                     27: 
1.7       paf        28:        DB_Manager(Pool& apool);
1.1       parser     29:        ~DB_Manager();
                     30: 
                     31:        /** 
1.3       paf        32:                connect to specified db_home, 
1.1       parser     33:                using driver dynamic library found in table, if not loaded yet
                     34:                checks driver version
                     35:        */
1.4       paf        36:        DB_Connection_ptr get_connection_ptr(const String& db_home, const String *source);
1.1       parser     37: 
1.3       paf        38: private: // connection cache, never expires
1.1       parser     39: 
1.3       paf        40:        DB_Connection *get_connection_from_cache(const String& db_home);
                     41:        void put_connection_to_cache(const String& db_home, DB_Connection& connection);
1.1       parser     42: private:
                     43:        time_t prev_expiration_pass_time;
                     44: 
                     45: private:
                     46: 
                     47:        Hash connection_cache;
1.7       paf        48: 
1.9     ! paf        49: public: // Cache_manager
1.7       paf        50: 
                     51:        virtual Value& get_status(Pool& pool, const String *source);
1.9     ! paf        52:        virtual void maybe_expire_cache();
1.1       parser     53: 
                     54: };
                     55: 
                     56: /// global
                     57: extern DB_Manager *DB_manager;
                     58: 
                     59: #endif

E-mail: