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:127
dunedaq::ipm::Sender::duration_t
std::chrono::milliseconds duration_t
Definition
Sender.hpp:85
dunedaq::ipm::Sender::m_messages
std::atomic< size_t > m_messages
Definition
Sender.hpp:127
dunedaq::ipm::Sender::message_size_t
int message_size_t
Definition
Sender.hpp:89
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:126
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:116
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:59
Sender.hpp
ipm.pb.h
dunedaq::ipm::Sender::ConnectionInfo::connection_name
std::string connection_name
Definition
Sender.hpp:81
Generated on
for DUNE-DAQ by
1.18.0