DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
ConfigClientStructs.hpp
Go to the documentation of this file.
1
9#ifndef IOMANAGER_INCLUDE_IOMANAGER_NETWORK_CONFIGCLIENTSTRUCTS_HPP_
10#define IOMANAGER_INCLUDE_IOMANAGER_NETWORK_CONFIGCLIENTSTRUCTS_HPP_
11
13#include "nlohmann/json.hpp"
14
15#include <string>
16#include <vector>
17
18namespace dunedaq::iomanager {
19
20enum class ConnectionType : int
21{
22 kSendRecv = 0,
23 kPubSub = 1,
24 kInvalid = 2,
25};
26
27inline ConnectionType
37
39{
40 std::string uid_regex;
41 std::string data_type;
42
44
45 // Implicit conversion
46 ConnectionRequest(ConnectionId convert) // NOLINT(runtime/explicit)
47 : uid_regex(convert.uid)
48 , data_type(convert.data_type)
49 {
50 }
52};
53
55{
56 std::string uid;
57 std::string data_type;
59 std::string uri;
60 ConnectionType connection_type; // Maps to dunedaq::confmodel::NetworkConnection::Connection_type
61
63
64 // Implicit Conversion
65 ConnectionInfo(const confmodel::NetworkConnection* convert) // NOLINT(runtime/explicit)
66 : uid(convert->UID())
67 , data_type(convert->get_data_type())
68 , capacity(convert->get_capacity())
69 , uri(get_uri_for_connection(convert))
70 , connection_type(string_to_connection_type_enum(convert->get_connection_type()))
71 {
72 }
73
75};
76
78{
79 std::string uid;
80 std::string data_type;
82 std::string uri;
83 ConnectionType connection_type; // Maps to dunedaq::confmodel::NetworkConnection::Connection_type
84
86
87 // Implicit Conversion
88 ConnectionRegistration(const confmodel::NetworkConnection* convert) // NOLINT(runtime/explicit)
89 : uid(convert->UID())
90 , data_type(convert->get_data_type())
91 , capacity(convert->get_capacity())
92 , uri(get_uri_for_connection(convert))
93 , connection_type(string_to_connection_type_enum(convert->get_connection_type()))
94 {
95 }
96
97 // Implicit Conversion
98 ConnectionRegistration(ConnectionInfo convert) // NOLINT(runtime/explicit)
99 : uid(convert.uid)
100 , data_type(convert.data_type)
101 , capacity(convert.capacity)
102 , uri(convert.uri)
104 {
105 }
106
108};
109
116
117inline bool
119{
120 if (l.data_type == r.data_type) {
121 return l.uid < r.uid;
122 }
123 return l.data_type < r.data_type;
124}
125
126} // namespace dunedaq::iomanager
127
128#endif // IOMANAGER_INCLUDE_IOMANAGER_NETWORK_CONFIGCLIENTSTRUCTS_HPP_
ConnectionType string_to_connection_type_enum(std::string type)
bool operator<(ConnectionRegistration const &l, ConnectionRegistration const &r)
std::string get_uri_for_connection(const confmodel::NetworkConnection *netCon)
NLOHMANN_DEFINE_TYPE_INTRUSIVE(ConnectionInfo, uid, data_type, capacity, uri, connection_type)
ConnectionInfo(const confmodel::NetworkConnection *convert)
NLOHMANN_DEFINE_TYPE_INTRUSIVE(ConnectionRegistration, uid, data_type, capacity, uri, connection_type)
ConnectionRegistration(const confmodel::NetworkConnection *convert)
NLOHMANN_DEFINE_TYPE_INTRUSIVE(ConnectionRequest, uid_regex, data_type)
NLOHMANN_DEFINE_TYPE_INTRUSIVE(ConnectionResponse, connections)
std::vector< ConnectionInfo > connections