/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ /* * File: ConnectionPool.h * Author: shjd * * Created on 2018年3月30日, 上午10:09 */ #ifndef CONNECTIONPOOL_H #define CONNECTIONPOOL_H #include #include #include #include #include #include //配置文件 class ConnectionPool { public: static void release(); // 关闭所有的数据库连接 static QSqlDatabase openConnection(); // 获取数据库连接 static void closeConnection(QSqlDatabase connection); // 释放数据库连接回连接池 static QString getlfp(); //获取本地文件路径 static QString getrfp(); //获取远端文件路径 static QString getcomtradftpip(); static QString getcomtradftpuid(); static QString getcomtradftppsw(); static QString getcomtradfilepath(); static int getcomtradftpport(); static int gettempmeasureinterval(); static int getsf6interval(); static int getpdinterval(); static int getmicroweatherinterval(); static int getironcoreinterval(); static int getmoainterval(); static int getyspinterval(); static int getyspinterval1(); static int getyspinterval2(); static int getjyinterval(); static int getscurinterval(); static int getdlginterval(); static int getjdwinterval(); ~ConnectionPool(); private: static ConnectionPool& getInstance(); ConnectionPool(); ConnectionPool(const ConnectionPool &other); ConnectionPool& operator=(const ConnectionPool &other); QSqlDatabase createConnection(const QString &connectionName); // 创建数据库连接 QQueue usedConnectionNames; // 已使用的数据库连接名 QQueue unusedConnectionNames; // 未使用的数据库连接名 // 配置信息 QString hostName; QString databaseName; QString username; QString password; QString databaseType; int port; QString localfilepath; QString remotefilepath; QString comtradftpip; QString comtradftpuid; QString comtradftppsw; QString comtradfilepath; int comtradftpport; int tempmeasureinterval; int sf6interval; int pdinterval; int microweatherinterval; int ironcoreinterval; int moainterval; int yspinterval; int yspinterval1;//油色谱(无载气) int yspinterval2;//油色谱(混合气体) int jyinterval; int scurinterval; int dlginterval;//电缆沟 int jdwinterval;//接地網 bool testOnBorrow; // 取得连接的时候验证连接是否有效 QString testOnBorrowSql; // 测试访问数据库的 SQL int maxWaitTime; // 获取连接最大等待时间 int waitInterval; // 尝试获取连接时等待间隔时间 int maxConnectionCount; // 最大连接数 static QMutex mutex; static QWaitCondition waitConnection; static ConnectionPool *instance; }; #endif /* CONNECTIONPOOL_H */