22#ifndef _PLUGINS_MONGODB_MONGODB_THREAD_H_
23#define _PLUGINS_MONGODB_MONGODB_THREAD_H_
25#include <aspect/aspect_provider.h>
26#include <aspect/clock.h>
27#include <aspect/configurable.h>
28#include <aspect/logging.h>
29#include <aspect/thread_producer.h>
30#include <core/threading/thread.h>
31#include <plugins/mongodb/aspect/mongodb_conncreator.h>
32#include <plugins/mongodb/aspect/mongodb_inifin.h>
34#include <mongocxx/instance.hpp>
39#include <mongocxx/client.hpp>
63 virtual mongocxx::client *
create_client(
const std::string &config_name =
"");
75 void init_client_configs();
76 void init_instance_configs();
77 void init_replicaset_configs();
80 std::map<std::string, std::shared_ptr<MongoDBClientConfig>> client_configs_;
81 std::map<std::string, std::shared_ptr<MongoDBInstanceConfig>> instance_configs_;
82 std::map<std::string, std::shared_ptr<MongoDBReplicaSetConfig>> replicaset_configs_;
85 std::unique_ptr<mongocxx::instance> instance_;
MongoDB replica set configuration.
MongoDBThread()
Constructor.
virtual ~MongoDBThread()
Destructor.
virtual void run()
Stub to see name in backtrace for easier debugging.
virtual void finalize()
Finalize the thread.
virtual mongocxx::client * create_client(const std::string &config_name="")
Create a new MongoDB client.
virtual void init()
Initialize the thread.
virtual void delete_client(mongocxx::client *client)
Delete a client.
virtual void loop()
Code to execute in the thread.
Thread aspect provide a new aspect.
Thread aspect that allows to obtain the current time from the clock.
Thread aspect to access configuration data.
Thread aspect to log output.
MongoDBAspect initializer/finalizer.
Interface for a MongoDB connection creator.
Aspect for thread producing threads.
Thread class encapsulation of pthreads.