9#ifndef IOMANAGER_INCLUDE_IOMANAGER_CONFIGCLIENT_HPP_
10#define IOMANAGER_INCLUDE_IOMANAGER_CONFIGCLIENT_HPP_
15#include "nlohmann/json.hpp"
17#include <boost/asio/connect.hpp>
18#include <boost/asio/ip/basic_resolver.hpp>
19#include <boost/asio/ip/tcp.hpp>
20#include <boost/beast/core.hpp>
21#include <boost/beast/version.hpp>
29namespace beast = boost::beast;
30namespace net = boost::asio;
31using namespace std::literals::chrono_literals;
46 ConfigClient(
const std::string& server,
const std::string& port,
const std::string& session_name, std::chrono::milliseconds publish_interval);
78 void publish(std::vector<ConnectionRegistration>
const& connections);
90 void retract(
const std::vector<ConnectionId>& connectionIds);
103 net::ip::basic_resolver<net::ip::tcp>::results_type
m_addr;
net::ip::basic_resolver< net::ip::tcp >::results_type m_addr
std::set< ConnectionRegistration > m_registered_connections
ConnectionResponse resolveConnection(const ConnectionRequest &query, std::string session="")
ConfigClient(const std::string &server, const std::string &port, const std::string &session_name, std::chrono::milliseconds publish_interval)
net::io_context m_ioContext
std::atomic< bool > m_connected