DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
Sender.hpp
Go to the documentation of this file.
1
9#ifndef IOMANAGER_INCLUDE_IOMANAGER_SENDER_HPP_
10#define IOMANAGER_INCLUDE_IOMANAGER_SENDER_HPP_
11
14
15#include "logging/Logging.hpp"
17
18namespace dunedaq::iomanager {
19
20// Typeless
22{
23public:
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
37protected:
39};
40
41// Interface
42template<typename Datatype>
43class SenderConcept : public Sender
44{
45public:
46 explicit SenderConcept(ConnectionId const& conn_id)
47 : Sender(conn_id)
48 {}
49 virtual void send(Datatype&& data, Sender::timeout_t timeout) = 0; // NOLINT
50 virtual bool try_send(Datatype&& data, Sender::timeout_t timeout) = 0; // NOLINT
51 virtual void send_with_topic(Datatype&& data, Sender::timeout_t timeout, std::string topic) = 0; // NOLINT
52 virtual bool is_ready_for_sending(Sender::timeout_t timeout) = 0; // NOLINT
53};
54
55} // namespace dunedaq::iomanager
56
57#endif // IOMANAGER_INCLUDE_IOMANAGER_SENDER_HPP_
virtual bool try_send(Datatype &&data, Sender::timeout_t timeout)=0
virtual void send(Datatype &&data, Sender::timeout_t timeout)=0
SenderConcept(ConnectionId const &conn_id)
Definition Sender.hpp:46
virtual void send_with_topic(Datatype &&data, Sender::timeout_t timeout, std::string topic)=0
virtual bool is_ready_for_sending(Sender::timeout_t timeout)=0
virtual ~Sender()=default
std::chrono::milliseconds timeout_t
Definition Sender.hpp:24
Sender(ConnectionId const &this_conn)
Definition Sender.hpp:28
static constexpr timeout_t s_block
Definition Sender.hpp:25
ConnectionId id() const
Definition Sender.hpp:35
static constexpr timeout_t s_no_block
Definition Sender.hpp:26
Implements the Named interface.
NamedObject(const std::string &name)
NamedObject Constructor.