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: