DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
iomanager
include
iomanager
Sender.hpp
Go to the documentation of this file.
1
8
9
#ifndef IOMANAGER_INCLUDE_IOMANAGER_SENDER_HPP_
10
#define IOMANAGER_INCLUDE_IOMANAGER_SENDER_HPP_
11
12
#include "
iomanager/CommonIssues.hpp
"
13
#include "
iomanager/SchemaUtils.hpp
"
14
15
#include "
logging/Logging.hpp
"
16
#include "
utilities/NamedObject.hpp
"
17
18
namespace
dunedaq::iomanager
{
19
20
// Typeless
21
class
Sender
:
public
utilities::NamedObject
22
{
23
public
:
24
using
timeout_t
= std::chrono::milliseconds;
25
static
constexpr
timeout_t
s_block
= timeout_t::max();
26
static
constexpr
timeout_t
s_no_block
= timeout_t::zero();
27
28
explicit
Sender
(
ConnectionId
const
& this_conn)
29
:
utilities
::
NamedObject
(this_conn.uid)
30
,
m_conn
(this_conn)
31
{
32
}
33
virtual
~Sender
() =
default
;
34
35
ConnectionId
id
()
const
{
return
m_conn
; }
36
37
protected
:
38
ConnectionId
m_conn
;
39
};
40
41
// Interface
42
template
<
typename
Datatype>
43
class
SenderConcept
:
public
Sender
44
{
45
public
:
46
explicit
SenderConcept
(
ConnectionId
const
& conn_id)
47
:
Sender
(conn_id)
48
{
49
}
50
virtual
void
send
(Datatype&& data,
Sender::timeout_t
timeout) = 0;
// NOLINT
51
virtual
bool
try_send
(Datatype&& data,
Sender::timeout_t
timeout) = 0;
// NOLINT
52
virtual
void
send_with_topic
(Datatype&& data,
Sender::timeout_t
timeout, std::string topic) = 0;
// NOLINT
53
virtual
bool
is_ready_for_sending
(
Sender::timeout_t
timeout) = 0;
// NOLINT
54
};
55
56
}
// namespace dunedaq::iomanager
57
58
#endif
// IOMANAGER_INCLUDE_IOMANAGER_SENDER_HPP_
NamedObject.hpp
SchemaUtils.hpp
dunedaq::iomanager::SenderConcept::try_send
virtual bool try_send(Datatype &&data, Sender::timeout_t timeout)=0
dunedaq::iomanager::SenderConcept::send
virtual void send(Datatype &&data, Sender::timeout_t timeout)=0
dunedaq::iomanager::SenderConcept::SenderConcept
SenderConcept(ConnectionId const &conn_id)
Definition
Sender.hpp:46
dunedaq::iomanager::SenderConcept::send_with_topic
virtual void send_with_topic(Datatype &&data, Sender::timeout_t timeout, std::string topic)=0
dunedaq::iomanager::SenderConcept::is_ready_for_sending
virtual bool is_ready_for_sending(Sender::timeout_t timeout)=0
dunedaq::iomanager::Sender::~Sender
virtual ~Sender()=default
dunedaq::iomanager::Sender::timeout_t
std::chrono::milliseconds timeout_t
Definition
Sender.hpp:24
dunedaq::iomanager::Sender::Sender
Sender(ConnectionId const &this_conn)
Definition
Sender.hpp:28
dunedaq::iomanager::Sender::s_block
static constexpr timeout_t s_block
Definition
Sender.hpp:25
dunedaq::iomanager::Sender::id
ConnectionId id() const
Definition
Sender.hpp:35
dunedaq::iomanager::Sender::m_conn
ConnectionId m_conn
Definition
Sender.hpp:38
dunedaq::iomanager::Sender::s_no_block
static constexpr timeout_t s_no_block
Definition
Sender.hpp:26
dunedaq::utilities::NamedObject
Implements the Named interface.
Definition
NamedObject.hpp:44
dunedaq::utilities::NamedObject::NamedObject
NamedObject(const std::string &name)
NamedObject Constructor.
Definition
NamedObject.hpp:50
CommonIssues.hpp
Logging.hpp
dunedaq::iomanager
Definition
IOManager.hxx:19
dunedaq::utilities
Definition
TimestampEstimatorTimeSync.hxx:3
dunedaq::iomanager::ConnectionId
Definition
SchemaUtils.hpp:26
Generated on
for DUNE-DAQ by
1.17.0