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: