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

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.12    ! paf         8:        $Id: pa_db_manager.h,v 1.11 2001/12/13 11:09:46 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_hash.h"
1.4       paf        15: #include "pa_db_connection.h"
1.9       paf        16: #include "pa_cache_managers.h"
1.5       paf        17: 
1.1       parser     18: // defines
                     19: 
                     20: // forwards
                     21: 
                     22: /// sql driver manager
1.10      paf        23: class DB_Manager : public Cache_manager {
1.6       paf        24:        friend class DB_Connection;
1.1       parser     25: public:
                     26: 
1.7       paf        27:        DB_Manager(Pool& apool);
1.11      paf        28:        virtual ~DB_Manager();
1.1       parser     29: 
                     30:        /** 
1.3       paf        31:                connect to specified db_home, 
1.1       parser     32:                using driver dynamic library found in table, if not loaded yet
                     33:                checks driver version
                     34:        */
1.4       paf        35:        DB_Connection_ptr get_connection_ptr(const String& db_home, const String *source);
1.1       parser     36: 
1.3       paf        37: private: // connection cache, never expires
1.1       parser     38: 
1.3       paf        39:        DB_Connection *get_connection_from_cache(const String& db_home);
                     40:        void put_connection_to_cache(const String& db_home, DB_Connection& connection);
1.1       parser     41: private:
                     42:        time_t prev_expiration_pass_time;
                     43: 
                     44: private:
                     45: 
                     46:        Hash connection_cache;
1.7       paf        47: 
1.9       paf        48: public: // Cache_manager
1.7       paf        49: 
                     50:        virtual Value& get_status(Pool& pool, const String *source);
1.9       paf        51:        virtual void maybe_expire_cache();
1.1       parser     52: 
                     53: };
                     54: 
                     55: /// global
                     56: extern DB_Manager *DB_manager;
                     57: 
                     58: #endif

E-mail: