240717班级,工业化控制系统,煤矿相关行业,昆仑系统
lzz
2024-11-07 edd4466fdad20fcf50a7c30569ba7ce11f262914
Server/ÍõçûÔª/code/ConnectionPool.h
@@ -1,50 +1,44 @@
#pragma once
#include <queue>
#include <mutex>
#include <condition_variable>
//#include <json/json.h>
#include "MysqlConn.h"
//using namespace Json;
class ConnectionPool
{
public:
   static ConnectionPool* getInstance( );
    static ConnectionPool* getInstance();
   std::shared_ptr<MysqlConn>  getMysqlConn();    // ä»Žæ•°æ®åº“连接池获取连接
    shared_ptr<MysqlConn> getMysqlConn();    // ä»Žæ•°æ®åº“连接池获取连接
   ConnectionPool(const ConnectionPool& other) = delete;
   ConnectionPool& operator = (const ConnectionPool & other ) = delete;
   ~ConnectionPool();
    ConnectionPool(const ConnectionPool& other) = delete;
    ConnectionPool& operator=(const ConnectionPool& other) = delete;
   void description();
    ~ConnectionPool();
    void description();
protected:
   ConnectionPool( );   // æž„造函数
    ConnectionPool();   // æž„造函数
private:
   bool parseJsonFile();   // è§£æžé…ç½®
    // ä¸å†éœ€è¦è§£æžé…ç½®æ–‡ä»¶çš„函数
    // bool parseJsonFile();   // è§£æžé…ç½®
   void produce();
   void recycle();
   void addConnection();  // å¢žåŠ è¿žæŽ¥æ•°
    void produce();
    void recycle();
    void addConnection();  // å¢žåŠ è¿žæŽ¥æ•°
   std::string  m_ip;
   std::string  m_userName;
   std::string  m_passwd;
   std::string  m_db;
   unsigned short m_port;
    // å†™æ­»çš„æ•°æ®åº“连接参数
    string m_ip = "127.0.0.1";
    string m_userName = "root";
    string m_passwd = "123456";
    string m_db = "mayi_kunlun";
    unsigned short m_port = 3306;
   int m_max_conn;
   int m_min_conn;
    int m_max_conn;
    int m_min_conn;
   int m_timeout;      // è¿žæŽ¥è¶…æ—¶æ—¶é—´
   int max_del_time;   // æœ€å¤§åˆ é™¤æ—¶é—´( è¿žæŽ¥ç©ºé—²æ—¶é—´è¶…过这个,就给当前连接关闭 )
   std::queue<MysqlConn*>m_connkQueue ;   // è¿žæŽ¥é˜Ÿåˆ—
   std::mutex m_mutex;  // äº’斥锁
   std::condition_variable m_cond;   // æ¡ä»¶å˜é‡
    int m_timeout;      // è¿žæŽ¥è¶…æ—¶æ—¶é—´
    int max_del_time;   // æœ€å¤§åˆ é™¤æ—¶é—´( è¿žæŽ¥ç©ºé—²æ—¶é—´è¶…过这个,就给当前连接关闭 )
    queue<MysqlConn*> m_connkQueue;   // è¿žæŽ¥é˜Ÿåˆ—
    mutex m_mutex;  // äº’斥锁
    condition_variable m_cond;   // æ¡ä»¶å˜é‡
};