IM/MDB/imm_mongodb/MongoPool.cpp
2023-05-29 18:12:22 +08:00

31 lines
722 B
C++

//
// Created by dongl on 23-5-27.
//
#include "MongoPool.h"
#include "mongocxx/instance.hpp"
MongoPool::MongoPool() {
static mongocxx::instance instance{}; // This should be done only once.
uri = mongocxx::uri("mongodb://user_session:Aa316216@124.221.152.192:27017/?authSource=im_session");
}
mongocxx::pool::entry MongoPool::acquire() {
static auto mongoPool = new MongoPool();
return mongoPool->pool_fun(mongoPool)->acquire();
}
auto MongoPool::try_acquire() {
static auto mongoPool = new MongoPool();
return mongoPool->pool_fun(mongoPool)->try_acquire();
}
mongocxx::pool* MongoPool::pool_fun(MongoPool *mongoPool) {
static mongocxx::pool pool(mongoPool->uri);
return &pool;
}