8#include <mongoc/mongoc.h>
23 std::string
uri{
"mongodb://localhost:27017"};
49 std::coroutine_handle<>
coro;
61 std::coroutine_handle<>
coro;
98 mongoc_client_pool_t*
get_pool() {
return pool_; }
109 mongoc_uri_t* uri_{
nullptr};
110 mongoc_client_pool_t* pool_{
nullptr};
112 static std::atomic<int> init_count_;
Definition ThreadPool.hpp:12
An asynchronous MongoDB client using coroutines.
Definition MongoClient.hpp:17
concurrency::ThreadPool & get_thread_pool()
Gets the associated thread pool.
Definition MongoClient.hpp:92
MongoClient(const MongoClient &)=delete
~MongoClient()
Definition MongoClient.cpp:30
mongoc_client_pool_t * get_pool()
Gets the underlying MongoDB client pool.
Definition MongoClient.hpp:98
MongoClient & operator=(const MongoClient &)=delete
QueryAwaiter find_async(std::string query_json)
Executes a find query asynchronously.
Definition MongoClient.cpp:92
InsertAwaiter insert_async(std::string doc_json)
Inserts a document asynchronously.
Definition MongoClient.cpp:135
const Config & get_config() const
Gets the configuration used by this client.
Definition MongoClient.hpp:104
Definition ConnectionPool.hpp:10
Configuration options for the MongoDB client.
Definition MongoClient.hpp:22
std::string collection_name
Definition MongoClient.hpp:25
std::string uri
Definition MongoClient.hpp:23
std::string dbname
Definition MongoClient.hpp:24
Definition MongoClient.hpp:56
void await_suspend(std::coroutine_handle<> h)
Definition MongoClient.cpp:97
std::string doc_json
Definition MongoClient.hpp:58
bool await_resume()
Definition MongoClient.cpp:128
MongoClient & client
Definition MongoClient.hpp:57
bool success
Definition MongoClient.hpp:59
std::string error_msg
Definition MongoClient.hpp:60
std::coroutine_handle coro
Definition MongoClient.hpp:61
bool await_ready() const
Definition MongoClient.hpp:63
Definition MongoClient.hpp:44
MongoClient & client
Definition MongoClient.hpp:45
bool await_ready() const
Definition MongoClient.hpp:51
void await_suspend(std::coroutine_handle<> h)
Definition MongoClient.cpp:44
QueryResult await_resume()
Definition MongoClient.cpp:85
std::coroutine_handle coro
Definition MongoClient.hpp:49
std::string query_json
Definition MongoClient.hpp:46
std::string error_msg
Definition MongoClient.hpp:48
QueryResult result
Definition MongoClient.hpp:47
Definition MongoClient.hpp:28
std::vector< std::string > documents
Definition MongoClient.hpp:29
A coroutine awaiter for executing a query on a PostgresClient asynchronously.
Definition PostgresCoro.hpp:39