DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
ipm
src
Sender.cpp
Go to the documentation of this file.
1
8
9
#include "
ipm/Sender.hpp
"
10
#include "
ipm/opmon/ipm.pb.h
"
11
12
#include <string>
13
#include <utility>
14
#include <vector>
15
16
bool
17
dunedaq::ipm::Sender::send
(
const
void
* message,
18
message_size_t
message_size,
19
const
duration_t
& timeout,
20
std::string
const
& metadata,
21
bool
no_tmoexcept_mode)
22
{
23
if
(message_size == 0) {
24
return
true
;
25
}
26
27
if
(!
can_send
()) {
28
throw
KnownStateForbidsSend(
ERS_HERE
);
29
}
30
31
if
(!message) {
32
throw
NullPointerPassedToSend(
ERS_HERE
,
m_connection_info
.connection_name);
33
}
34
35
auto
res =
send_
(message, message_size, timeout, metadata, no_tmoexcept_mode);
36
37
m_bytes
+= message_size;
38
++
m_messages
;
39
40
return
res;
41
}
42
43
void
44
dunedaq::ipm::Sender::generate_opmon_data
()
45
{
46
47
opmon::SenderInfo
i;
48
49
i.
set_bytes
(
m_bytes
.exchange(0));
50
i.
set_messages
(
m_messages
.exchange(0));
51
52
publish
(std::move(i));
53
}
ERS_HERE
#define ERS_HERE
Definition
LocalContext.hpp:141
dunedaq::ipm::Sender::duration_t
std::chrono::milliseconds duration_t
Definition
Sender.hpp:84
dunedaq::ipm::Sender::m_messages
std::atomic< size_t > m_messages
Definition
Sender.hpp:126
dunedaq::ipm::Sender::message_size_t
int message_size_t
Definition
Sender.hpp:88
dunedaq::ipm::Sender::generate_opmon_data
void generate_opmon_data() override
Definition
Sender.cpp:44
dunedaq::ipm::Sender::m_bytes
std::atomic< size_t > m_bytes
Definition
Sender.hpp:125
dunedaq::ipm::Sender::send
bool send(const void *message, message_size_t message_size, const duration_t &timeout, std::string const &metadata="", bool no_tmoexcept_mode=false)
Definition
Sender.cpp:17
dunedaq::ipm::Sender::send_
virtual bool send_(const void *message, message_size_t N, const duration_t &timeout, std::string const &metadata, bool no_tmoexcept_mode)=0
dunedaq::ipm::Sender::m_connection_info
ConnectionInfo m_connection_info
Definition
Sender.hpp:115
dunedaq::ipm::Sender::can_send
virtual bool can_send() const noexcept=0
dunedaq::ipm::opmon::SenderInfo
Definition
ipm.pb.h:83
dunedaq::ipm::opmon::SenderInfo::set_bytes
void set_bytes(::uint64_t value)
Definition
ipm.pb.h:446
dunedaq::ipm::opmon::SenderInfo::set_messages
void set_messages(::uint64_t value)
Definition
ipm.pb.h:468
dunedaq::opmonlib::MonitorableObject::publish
void publish(google::protobuf::Message &&, CustomOrigin &&co={}, OpMonLevel l=to_level(EntryOpMonLevel::kDefault)) const noexcept
Definition
MonitorableObject.cpp:58
Sender.hpp
ipm.pb.h
Generated on
for DUNE-DAQ by
1.17.0