Annotation of parser3/src/include/pa_db_manager.h, revision 1.11
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.11 ! paf 8: $Id: pa_db_manager.h,v 1.10 2001/11/08 14:47:31 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.10 paf 24: class DB_Manager : 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.11 ! paf 29: virtual ~DB_Manager();
1.1 parser 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: