DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
ipm
src
Receiver.cpp
Go to the documentation of this file.
1
8
9
#include "
ipm/Receiver.hpp
"
10
#include "
ipm/opmon/ipm.pb.h
"
11
12
#include <utility>
13
14
dunedaq::ipm::Receiver::Response
15
dunedaq::ipm::Receiver::receive
(
const
duration_t
& timeout,
message_size_t
bytes,
bool
no_tmoexcept_mode)
16
{
17
if
(!
can_receive
()) {
18
throw
KnownStateForbidsReceive(
ERS_HERE
);
19
}
20
auto
message =
receive_
(timeout, no_tmoexcept_mode);
21
22
if
(bytes !=
s_any_size
) {
23
auto
received_size =
static_cast<
message_size_t
>
(message.data.size());
24
if
(received_size != bytes) {
25
throw
UnexpectedNumberOfBytes(
ERS_HERE
,
m_connection_info
.connection_name, received_size, bytes);
26
}
27
}
28
29
// 18-May-2026, KAB: only increment the opmon counters if a non-empty message was received
30
if
(message.data.size() > 0) {
31
m_bytes
+= message.data.size();
32
++
m_messages
;
33
}
34
35
return
message;
36
}
37
38
void
39
dunedaq::ipm::Receiver::generate_opmon_data
()
40
{
41
42
opmon::ReceiverInfo
i;
43
44
i.
set_bytes
(
m_bytes
.exchange(0));
45
i.
set_messages
(
m_messages
.exchange(0));
46
47
publish
(std::move(i));
48
}
ERS_HERE
#define ERS_HERE
Definition
LocalContext.hpp:141
dunedaq::ipm::Receiver::m_connection_info
ConnectionInfo m_connection_info
Definition
Receiver.hpp:122
dunedaq::ipm::Receiver::duration_t
std::chrono::milliseconds duration_t
Definition
Receiver.hpp:83
dunedaq::ipm::Receiver::s_any_size
static constexpr message_size_t s_any_size
Definition
Receiver.hpp:88
dunedaq::ipm::Receiver::message_size_t
int message_size_t
Definition
Receiver.hpp:87
dunedaq::ipm::Receiver::m_bytes
std::atomic< size_t > m_bytes
Definition
Receiver.hpp:128
dunedaq::ipm::Receiver::receive
Response receive(const duration_t &timeout, message_size_t num_bytes=s_any_size, bool no_tmoexcept_mode=false)
Definition
Receiver.cpp:15
dunedaq::ipm::Receiver::generate_opmon_data
void generate_opmon_data() override
Definition
Receiver.cpp:39
dunedaq::ipm::Receiver::receive_
virtual Response receive_(const duration_t &timeout, bool no_tmoexcept_mode)=0
dunedaq::ipm::Receiver::can_receive
virtual bool can_receive() const noexcept=0
dunedaq::ipm::Receiver::m_messages
std::atomic< size_t > m_messages
Definition
Receiver.hpp:129
dunedaq::ipm::opmon::ReceiverInfo
Definition
ipm.pb.h:253
dunedaq::ipm::opmon::ReceiverInfo::set_messages
void set_messages(::uint64_t value)
Definition
ipm.pb.h:516
dunedaq::ipm::opmon::ReceiverInfo::set_bytes
void set_bytes(::uint64_t value)
Definition
ipm.pb.h:494
dunedaq::opmonlib::MonitorableObject::publish
void publish(google::protobuf::Message &&, CustomOrigin &&co={}, OpMonLevel l=to_level(EntryOpMonLevel::kDefault)) const noexcept
Definition
MonitorableObject.cpp:58
Receiver.hpp
ipm.pb.h
dunedaq::ipm::Receiver::Response
Definition
Receiver.hpp:104
Generated on
for DUNE-DAQ by
1.17.0