DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
dunedaq
sourcecode
snbmodules
include
snbmodules
common
notification_enum.hpp
Go to the documentation of this file.
1
9
#ifndef SNBMODULES_INCLUDE_SNBMODULES_COMMON_NOTIFICATION_ENUM_HPP_
10
#define SNBMODULES_INCLUDE_SNBMODULES_COMMON_NOTIFICATION_ENUM_HPP_
11
12
#include <map>
13
#include <optional>
14
#include <string>
15
16
namespace
dunedaq::snbmodules
{
17
struct
notification_type
18
{
20
enum
e_notification_type
21
{
22
// bookkeeper
23
CONNECTION_REQUEST
,
24
NEW_TRANSFER
,
25
UPDATE_REQUEST
,
26
27
// client
28
GROUP_METADATA
,
29
TRANSFER_ERROR
,
30
31
// both
32
START_TRANSFER
,
33
TRANSFER_METADATA
,
34
PAUSE_TRANSFER
,
35
RESUME_TRANSFER
,
36
CANCEL_TRANSFER
,
37
};
38
39
static
std::string
notification_to_string
(
e_notification_type
e)
40
{
41
const
std::map<e_notification_type, std::string> MyEnumStrings{
42
{
CONNECTION_REQUEST
,
"CONNECTION_REQUEST"
}, {
NEW_TRANSFER
,
"NEW_TRANSFER"
},
43
{
UPDATE_REQUEST
,
"UPDATE_REQUEST"
}, {
GROUP_METADATA
,
"GROUP_METADATA"
},
44
{
TRANSFER_ERROR
,
"TRANSFER_ERROR"
}, {
START_TRANSFER
,
"START_TRANSFER"
},
45
{
TRANSFER_METADATA
,
"TRANSFER_METADATA"
}, {
PAUSE_TRANSFER
,
"PAUSE_TRANSFER"
},
46
{
RESUME_TRANSFER
,
"RESUME_TRANSFER"
}, {
CANCEL_TRANSFER
,
"CANCEL_TRANSFER"
}
47
};
48
auto
it = MyEnumStrings.find(e);
49
return
it == MyEnumStrings.end() ?
"Not supported"
: it->second;
50
}
51
52
static
std::optional<e_notification_type>
string_to_notification
(std::string s)
53
{
54
const
std::map<std::string, e_notification_type> MyStringsEnum{
55
{
"CONNECTION_REQUEST"
,
CONNECTION_REQUEST
}, {
"NEW_TRANSFER"
,
NEW_TRANSFER
},
56
{
"UPDATE_REQUEST"
,
UPDATE_REQUEST
}, {
"GROUP_METADATA"
,
GROUP_METADATA
},
57
{
"TRANSFER_ERROR"
,
TRANSFER_ERROR
}, {
"START_TRANSFER"
,
START_TRANSFER
},
58
{
"TRANSFER_METADATA"
,
TRANSFER_METADATA
}, {
"PAUSE_TRANSFER"
,
PAUSE_TRANSFER
},
59
{
"RESUME_TRANSFER"
,
RESUME_TRANSFER
}, {
"CANCEL_TRANSFER"
,
CANCEL_TRANSFER
}
60
};
61
auto
it = MyStringsEnum.find(s);
62
if
(it == MyStringsEnum.end()) {
63
return
std::nullopt;
64
}
65
return
it->second;
66
}
67
};
68
69
}
// namespace dunedaq::snbmodules
70
#endif
// SNBMODULES_INCLUDE_SNBMODULES_COMMON_NOTIFICATION_ENUM_HPP_
dunedaq::snbmodules
Definition
bookkeeper.hpp:30
dunedaq::snbmodules::notification_type
Definition
notification_enum.hpp:18
dunedaq::snbmodules::notification_type::string_to_notification
static std::optional< e_notification_type > string_to_notification(std::string s)
Definition
notification_enum.hpp:52
dunedaq::snbmodules::notification_type::notification_to_string
static std::string notification_to_string(e_notification_type e)
Definition
notification_enum.hpp:39
dunedaq::snbmodules::notification_type::e_notification_type
e_notification_type
Different type of notifications possible to send.
Definition
notification_enum.hpp:21
dunedaq::snbmodules::notification_type::TRANSFER_METADATA
@ TRANSFER_METADATA
Definition
notification_enum.hpp:33
dunedaq::snbmodules::notification_type::CONNECTION_REQUEST
@ CONNECTION_REQUEST
Definition
notification_enum.hpp:23
dunedaq::snbmodules::notification_type::CANCEL_TRANSFER
@ CANCEL_TRANSFER
Definition
notification_enum.hpp:36
dunedaq::snbmodules::notification_type::TRANSFER_ERROR
@ TRANSFER_ERROR
Definition
notification_enum.hpp:29
dunedaq::snbmodules::notification_type::RESUME_TRANSFER
@ RESUME_TRANSFER
Definition
notification_enum.hpp:35
dunedaq::snbmodules::notification_type::UPDATE_REQUEST
@ UPDATE_REQUEST
Definition
notification_enum.hpp:25
dunedaq::snbmodules::notification_type::PAUSE_TRANSFER
@ PAUSE_TRANSFER
Definition
notification_enum.hpp:34
dunedaq::snbmodules::notification_type::GROUP_METADATA
@ GROUP_METADATA
Definition
notification_enum.hpp:28
dunedaq::snbmodules::notification_type::START_TRANSFER
@ START_TRANSFER
Definition
notification_enum.hpp:32
dunedaq::snbmodules::notification_type::NEW_TRANSFER
@ NEW_TRANSFER
Definition
notification_enum.hpp:24
Generated on Thu Dec 25 2025 for DUNE-DAQ by
1.12.0