DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
iomanager
include
iomanager
network
ConfigClientStructs.hpp
Go to the documentation of this file.
1
8
9
#ifndef IOMANAGER_INCLUDE_IOMANAGER_NETWORK_CONFIGCLIENTSTRUCTS_HPP_
10
#define IOMANAGER_INCLUDE_IOMANAGER_NETWORK_CONFIGCLIENTSTRUCTS_HPP_
11
12
#include "
iomanager/SchemaUtils.hpp
"
13
#include "nlohmann/json.hpp"
14
15
#include <string>
16
#include <vector>
17
18
namespace
dunedaq::iomanager
{
19
20
enum class
ConnectionType
:
int
21
{
22
kSendRecv
= 0,
23
kPubSub
= 1,
24
kInvalid
= 2,
25
};
26
27
inline
ConnectionType
28
string_to_connection_type_enum
(std::string
type
)
29
{
30
if
(
type
==
confmodel::NetworkConnection::Connection_type::KPubSub
)
31
return
ConnectionType::kPubSub
;
32
if
(
type
==
confmodel::NetworkConnection::Connection_type::KSendRecv
)
33
return
ConnectionType::kSendRecv
;
34
35
return
ConnectionType::kInvalid
;
36
}
37
38
struct
ConnectionRequest
39
{
40
std::string
uid_regex
;
41
std::string
data_type
;
42
43
ConnectionRequest
() {}
44
45
// Implicit conversion
46
ConnectionRequest
(
ConnectionId
convert)
// NOLINT(runtime/explicit)
47
:
uid_regex
(convert.uid)
48
,
data_type
(convert.
data_type
)
49
{
50
}
51
NLOHMANN_DEFINE_TYPE_INTRUSIVE
(
ConnectionRequest
,
uid_regex
,
data_type
);
52
};
53
54
struct
ConnectionInfo
55
{
56
std::string
uid
;
57
std::string
data_type
;
58
int
capacity
;
59
std::string
uri
;
60
ConnectionType
connection_type
;
// Maps to dunedaq::confmodel::NetworkConnection::Connection_type
61
62
ConnectionInfo
() {}
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
74
NLOHMANN_DEFINE_TYPE_INTRUSIVE
(
ConnectionInfo
,
uid
,
data_type
,
capacity
,
uri
,
connection_type
);
75
};
76
77
struct
ConnectionRegistration
78
{
79
std::string
uid
;
80
std::string
data_type
;
81
int
capacity
;
82
std::string
uri
;
83
ConnectionType
connection_type
;
// Maps to dunedaq::confmodel::NetworkConnection::Connection_type
84
85
ConnectionRegistration
() {}
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
)
103
,
connection_type
(convert.
connection_type
)
104
{
105
}
106
107
NLOHMANN_DEFINE_TYPE_INTRUSIVE
(
ConnectionRegistration
,
uid
,
data_type
,
capacity
,
uri
,
connection_type
);
108
};
109
110
struct
ConnectionResponse
111
{
112
std::vector<ConnectionInfo>
connections
;
113
114
NLOHMANN_DEFINE_TYPE_INTRUSIVE
(
ConnectionResponse
,
connections
);
115
};
116
117
inline
bool
118
operator<
(
ConnectionRegistration
const
& l,
ConnectionRegistration
const
& r)
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_
SchemaUtils.hpp
type
type
Definition
TriggerActivity_serialization.hpp:48
dunedaq::confmodel::NetworkConnection
Definition
NetworkConnection.hpp:32
dunedaq::iomanager
Definition
IOManager.hxx:19
dunedaq::iomanager::string_to_connection_type_enum
ConnectionType string_to_connection_type_enum(std::string type)
Definition
ConfigClientStructs.hpp:28
dunedaq::iomanager::operator<
bool operator<(ConnectionRegistration const &l, ConnectionRegistration const &r)
Definition
ConfigClientStructs.hpp:118
dunedaq::iomanager::ConnectionType
ConnectionType
Definition
ConfigClientStructs.hpp:21
dunedaq::iomanager::ConnectionType::kSendRecv
@ kSendRecv
Definition
ConfigClientStructs.hpp:22
dunedaq::iomanager::ConnectionType::kInvalid
@ kInvalid
Definition
ConfigClientStructs.hpp:24
dunedaq::iomanager::ConnectionType::kPubSub
@ kPubSub
Definition
ConfigClientStructs.hpp:23
dunedaq::iomanager::get_uri_for_connection
std::string get_uri_for_connection(const confmodel::NetworkConnection *netCon)
Definition
SchemaUtils.hpp:94
dunedaq::confmodel::NetworkConnection::Connection_type::KSendRecv
static const std::string KSendRecv
Definition
NetworkConnection.hpp:101
dunedaq::confmodel::NetworkConnection::Connection_type::KPubSub
static const std::string KPubSub
Definition
NetworkConnection.hpp:102
dunedaq::iomanager::ConnectionId
Definition
SchemaUtils.hpp:26
dunedaq::iomanager::ConnectionInfo
Definition
ConfigClientStructs.hpp:55
dunedaq::iomanager::ConnectionInfo::NLOHMANN_DEFINE_TYPE_INTRUSIVE
NLOHMANN_DEFINE_TYPE_INTRUSIVE(ConnectionInfo, uid, data_type, capacity, uri, connection_type)
dunedaq::iomanager::ConnectionInfo::capacity
int capacity
Definition
ConfigClientStructs.hpp:58
dunedaq::iomanager::ConnectionInfo::ConnectionInfo
ConnectionInfo()
Definition
ConfigClientStructs.hpp:62
dunedaq::iomanager::ConnectionInfo::uri
std::string uri
Definition
ConfigClientStructs.hpp:59
dunedaq::iomanager::ConnectionInfo::connection_type
ConnectionType connection_type
Definition
ConfigClientStructs.hpp:60
dunedaq::iomanager::ConnectionInfo::data_type
std::string data_type
Definition
ConfigClientStructs.hpp:57
dunedaq::iomanager::ConnectionInfo::uid
std::string uid
Definition
ConfigClientStructs.hpp:56
dunedaq::iomanager::ConnectionInfo::ConnectionInfo
ConnectionInfo(const confmodel::NetworkConnection *convert)
Definition
ConfigClientStructs.hpp:65
dunedaq::iomanager::ConnectionRegistration
Definition
ConfigClientStructs.hpp:78
dunedaq::iomanager::ConnectionRegistration::NLOHMANN_DEFINE_TYPE_INTRUSIVE
NLOHMANN_DEFINE_TYPE_INTRUSIVE(ConnectionRegistration, uid, data_type, capacity, uri, connection_type)
dunedaq::iomanager::ConnectionRegistration::data_type
std::string data_type
Definition
ConfigClientStructs.hpp:80
dunedaq::iomanager::ConnectionRegistration::uid
std::string uid
Definition
ConfigClientStructs.hpp:79
dunedaq::iomanager::ConnectionRegistration::connection_type
ConnectionType connection_type
Definition
ConfigClientStructs.hpp:83
dunedaq::iomanager::ConnectionRegistration::capacity
int capacity
Definition
ConfigClientStructs.hpp:81
dunedaq::iomanager::ConnectionRegistration::ConnectionRegistration
ConnectionRegistration(ConnectionInfo convert)
Definition
ConfigClientStructs.hpp:98
dunedaq::iomanager::ConnectionRegistration::ConnectionRegistration
ConnectionRegistration()
Definition
ConfigClientStructs.hpp:85
dunedaq::iomanager::ConnectionRegistration::ConnectionRegistration
ConnectionRegistration(const confmodel::NetworkConnection *convert)
Definition
ConfigClientStructs.hpp:88
dunedaq::iomanager::ConnectionRegistration::uri
std::string uri
Definition
ConfigClientStructs.hpp:82
dunedaq::iomanager::ConnectionRequest::ConnectionRequest
ConnectionRequest()
Definition
ConfigClientStructs.hpp:43
dunedaq::iomanager::ConnectionRequest::ConnectionRequest
ConnectionRequest(ConnectionId convert)
Definition
ConfigClientStructs.hpp:46
dunedaq::iomanager::ConnectionRequest::NLOHMANN_DEFINE_TYPE_INTRUSIVE
NLOHMANN_DEFINE_TYPE_INTRUSIVE(ConnectionRequest, uid_regex, data_type)
dunedaq::iomanager::ConnectionRequest::data_type
std::string data_type
Definition
ConfigClientStructs.hpp:41
dunedaq::iomanager::ConnectionRequest::uid_regex
std::string uid_regex
Definition
ConfigClientStructs.hpp:40
dunedaq::iomanager::ConnectionResponse
Definition
ConfigClientStructs.hpp:111
dunedaq::iomanager::ConnectionResponse::NLOHMANN_DEFINE_TYPE_INTRUSIVE
NLOHMANN_DEFINE_TYPE_INTRUSIVE(ConnectionResponse, connections)
dunedaq::iomanager::ConnectionResponse::connections
std::vector< ConnectionInfo > connections
Definition
ConfigClientStructs.hpp:112
Generated on
for DUNE-DAQ by
1.17.0