DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
iomanager
include
iomanager
network
ConfigClient.hpp
Go to the documentation of this file.
1
8
9
#ifndef IOMANAGER_INCLUDE_IOMANAGER_NETWORK_CONFIGCLIENT_HPP_
10
#define IOMANAGER_INCLUDE_IOMANAGER_NETWORK_CONFIGCLIENT_HPP_
11
12
#include "
iomanager/SchemaUtils.hpp
"
13
#include "
iomanager/network/ConfigClientStructs.hpp
"
14
15
#include "nlohmann/json.hpp"
16
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>
22
23
#include <map>
24
#include <mutex>
25
#include <set>
26
#include <string>
27
#include <thread>
28
#include <vector>
29
30
namespace
beast = boost::beast;
// from <boost/beast.hpp>
31
namespace
net = boost::asio;
// from <boost/asio.hpp>
32
33
namespace
dunedaq::iomanager
{
34
class
ConfigClient
35
{
36
public
:
46
ConfigClient
(
const
std::string& server,
47
const
std::string& port,
48
const
std::string& session_name,
49
std::chrono::milliseconds publish_interval);
50
55
~ConfigClient
();
56
65
ConnectionResponse
resolve_connection
(
const
ConnectionRequest
& query, std::string
session
=
""
);
66
67
void
publish
(
ConnectionRegistration
const
& connection);
68
69
void
publish
(std::vector<ConnectionRegistration>
const
& connections);
70
71
void
retract
(
const
ConnectionId
& connectionId);
72
79
void
retract
(
const
std::vector<ConnectionId>& connectionIds);
80
84
void
retract
();
85
86
bool
is_connected
() {
return
m_connected
.load(); }
87
88
private
:
89
void
publish
();
90
std::string
m_session
;
91
net::io_context
m_io_context
;
92
net::ip::basic_resolver<net::ip::tcp>::results_type
m_addr
;
93
94
std::mutex
m_mutex
;
95
std::set<ConnectionRegistration>
m_registered_connections
;
96
std::thread
m_thread
;
97
bool
m_active
;
98
std::atomic<bool>
m_connected
{
false
};
99
};
100
}
// namespace dunedaq::iomanager
101
102
#endif
// IOMANAGER_INCLUDE_IOMANAGER_NETWORK_CONFIGCLIENT_HPP_
ConfigClientStructs.hpp
SchemaUtils.hpp
dunedaq::iomanager::ConfigClient::m_thread
std::thread m_thread
Definition
ConfigClient.hpp:96
dunedaq::iomanager::ConfigClient::m_mutex
std::mutex m_mutex
Definition
ConfigClient.hpp:94
dunedaq::iomanager::ConfigClient::m_active
bool m_active
Definition
ConfigClient.hpp:97
dunedaq::iomanager::ConfigClient::resolve_connection
ConnectionResponse resolve_connection(const ConnectionRequest &query, std::string session="")
Definition
ConfigClient.cpp:85
dunedaq::iomanager::ConfigClient::m_addr
net::ip::basic_resolver< net::ip::tcp >::results_type m_addr
Definition
ConfigClient.hpp:92
dunedaq::iomanager::ConfigClient::m_io_context
net::io_context m_io_context
Definition
ConfigClient.hpp:91
dunedaq::iomanager::ConfigClient::publish
void publish()
Definition
ConfigClient.cpp:161
dunedaq::iomanager::ConfigClient::m_registered_connections
std::set< ConnectionRegistration > m_registered_connections
Definition
ConfigClient.hpp:95
dunedaq::iomanager::ConfigClient::~ConfigClient
~ConfigClient()
Definition
ConfigClient.cpp:74
dunedaq::iomanager::ConfigClient::retract
void retract()
Definition
ConfigClient.cpp:207
dunedaq::iomanager::ConfigClient::ConfigClient
ConfigClient(const std::string &server, const std::string &port, const std::string &session_name, std::chrono::milliseconds publish_interval)
Definition
ConfigClient.cpp:37
dunedaq::iomanager::ConfigClient::is_connected
bool is_connected()
Definition
ConfigClient.hpp:86
dunedaq::iomanager::ConfigClient::m_session
std::string m_session
Definition
ConfigClient.hpp:90
dunedaq::iomanager::ConfigClient::m_connected
std::atomic< bool > m_connected
Definition
ConfigClient.hpp:98
dunedaq::iomanager
Definition
IOManager.hxx:19
session
Definition
session.py:1
dunedaq::iomanager::ConnectionId
Definition
SchemaUtils.hpp:26
dunedaq::iomanager::ConnectionRegistration
Definition
ConfigClientStructs.hpp:78
dunedaq::iomanager::ConnectionRequest
Definition
ConfigClientStructs.hpp:39
dunedaq::iomanager::ConnectionResponse
Definition
ConfigClientStructs.hpp:111
Generated on
for DUNE-DAQ by
1.17.0