ConnectionManager.h
Go to the documentation of this file.
1
#pragma once
2
3
#include <map>
4
#include <memory>
5
#include <mutex>
6
#include <sstream>
7
#include <string>
8
9
#include <bsoncxx/builder/stream/array.hpp>
10
#include <bsoncxx/builder/stream/document.hpp>
11
#include <bsoncxx/builder/stream/helpers.hpp>
12
#include <bsoncxx/json.hpp>
13
#include <mongocxx/client.hpp>
14
#include <mongocxx/instance.hpp>
15
#include <mongocxx/pool.hpp>
16
#include <mongocxx/stdx.hpp>
17
#include <mongocxx/uri.hpp>
18
19
namespace
armarx::armem::server::ltm::mongodb
20
{
21
22
using
PoolClientPtr
= mongocxx::pool::entry;
23
24
/**
25
* @brief A manager of multiple mongodb connection
26
*/
27
class
ConnectionManager
28
{
29
public
:
30
ConnectionManager
() =
delete
;
31
32
struct
MongoDBSettings
33
{
34
std::string
host
=
""
;
35
unsigned
int
port
= 0;
36
std::string
user
=
""
;
37
std::string
password
=
""
;
38
std::string
database
=
"Test"
;
39
int
minPoolSize
= 5;
40
int
maxPoolSize
= 100;
41
42
MongoDBSettings
();
43
44
bool
isSet
()
const
;
45
46
std::string
baseUri
()
const
;
47
48
std::string
key
()
const
;
49
50
std::string
uri
()
const
;
51
52
std::string
toString
()
const
;
53
};
54
55
static
mongocxx::pool&
Connect
(
const
MongoDBSettings
& settings);
56
static
bool
ConnectionIsValid
(
const
MongoDBSettings
& settings,
57
bool
forceNewConnection =
false
);
58
static
bool
ConnectionExists
(
const
MongoDBSettings
& settings);
59
60
private
:
61
static
void
initialize_if();
62
63
64
private
:
65
static
std::mutex initializationMutex;
66
static
bool
initialized;
67
static
std::map<std::string, std::unique_ptr<mongocxx::pool>> Connections;
68
};
69
}
// namespace armarx::armem::server::ltm::mongodb
armarx::armem::server::ltm::mongodb::ConnectionManager::MongoDBSettings::key
std::string key() const
Definition:
ConnectionManager.cpp:81
armarx::armem::server::ltm::mongodb::ConnectionManager::MongoDBSettings::isSet
bool isSet() const
Definition:
ConnectionManager.cpp:55
armarx::armem::server::ltm::mongodb::ConnectionManager::MongoDBSettings
Definition:
ConnectionManager.h:32
armarx::armem::server::ltm::mongodb::ConnectionManager::MongoDBSettings::port
unsigned int port
Definition:
ConnectionManager.h:35
armarx::armem::server::ltm::mongodb::ConnectionManager::ConnectionExists
static bool ConnectionExists(const MongoDBSettings &settings)
Definition:
ConnectionManager.cpp:168
armarx::armem::server::ltm::mongodb::ConnectionManager::MongoDBSettings::database
std::string database
Definition:
ConnectionManager.h:38
armarx::armem::server::ltm::mongodb::ConnectionManager::MongoDBSettings::uri
std::string uri() const
Definition:
ConnectionManager.cpp:88
armarx::armem::server::ltm::mongodb::ConnectionManager::Connect
static mongocxx::pool & Connect(const MongoDBSettings &settings)
Definition:
ConnectionManager.cpp:114
armarx::armem::server::ltm::mongodb::ConnectionManager::MongoDBSettings::user
std::string user
Definition:
ConnectionManager.h:36
armarx::armem::server::ltm::mongodb::ConnectionManager::MongoDBSettings::toString
std::string toString() const
Definition:
ConnectionManager.cpp:96
armarx::armem::server::ltm::mongodb
Definition:
ConnectionManager.cpp:7
armarx::armem::server::ltm::mongodb::ConnectionManager::MongoDBSettings::baseUri
std::string baseUri() const
Definition:
ConnectionManager.cpp:62
armarx::armem::server::ltm::mongodb::ConnectionManager::ConnectionManager
ConnectionManager()=delete
armarx::armem::server::ltm::mongodb::ConnectionManager::MongoDBSettings::maxPoolSize
int maxPoolSize
Definition:
ConnectionManager.h:40
armarx::armem::server::ltm::mongodb::ConnectionManager::MongoDBSettings::MongoDBSettings
MongoDBSettings()
Definition:
ConnectionManager.cpp:13
armarx::armem::server::ltm::mongodb::ConnectionManager::MongoDBSettings::host
std::string host
Definition:
ConnectionManager.h:34
armarx::armem::server::ltm::mongodb::PoolClientPtr
mongocxx::pool::entry PoolClientPtr
Definition:
ConnectionManager.h:22
armarx::armem::server::ltm::mongodb::ConnectionManager::ConnectionIsValid
static bool ConnectionIsValid(const MongoDBSettings &settings, bool forceNewConnection=false)
Definition:
ConnectionManager.cpp:135
armarx::armem::server::ltm::mongodb::ConnectionManager
A manager of multiple mongodb connection.
Definition:
ConnectionManager.h:27
armarx::armem::server::ltm::mongodb::ConnectionManager::MongoDBSettings::minPoolSize
int minPoolSize
Definition:
ConnectionManager.h:39
armarx::armem::server::ltm::mongodb::ConnectionManager::MongoDBSettings::password
std::string password
Definition:
ConnectionManager.h:37
RobotAPI
libraries
armem
server
ltm
legacy
mongodb
ConnectionManager.h
Generated on Sat Mar 29 2025 09:17:28 for armarx_documentation by
1.8.17