forked from treefrogframework/treefrog-framework
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtkvsdatabasepool2.h
52 lines (40 loc) · 1.17 KB
/
tkvsdatabasepool2.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#ifndef TKVSDATABASEPOOL2_H
#define TKVSDATABASEPOOL2_H
#include <QObject>
#include <QString>
#include <QBasicTimer>
#include <TKvsDatabase>
#include <TGlobal>
class QSettings;
class TAtomicSet;
class T_CORE_EXPORT TKvsDatabasePool2 : public QObject
{
Q_OBJECT
public:
~TKvsDatabasePool2();
TKvsDatabase database(TKvsDatabase::Type type);
void pool(TKvsDatabase &database);
static void instantiate(int maxConnections = 0);
static TKvsDatabasePool2 *instance();
protected:
void init();
bool isKvsAvailable(TKvsDatabase::Type type) const;
QSettings &kvsSettings(TKvsDatabase::Type type) const;
bool setDatabaseSettings(TKvsDatabase &database, TKvsDatabase::Type type, const QString &env) const;
void timerEvent(QTimerEvent *event);
static QString driverName(TKvsDatabase::Type type);
static int maxDbConnectionsPerProcess();
private:
TKvsDatabasePool2(const QString &environment);
struct DatabaseUse
{
QString dbName;
uint lastUsed;
};
TAtomicSet *dbSet;
int maxConnects;
QString dbEnvironment;
QBasicTimer timer;
Q_DISABLE_COPY(TKvsDatabasePool2)
};
#endif // TKVSDATABASEPOOL2_H