DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
iomanager
include
iomanager
Receiver.hpp
Go to the documentation of this file.
1
8
9
#ifndef IOMANAGER_INCLUDE_IOMANAGER_RECEIVER_HPP_
10
#define IOMANAGER_INCLUDE_IOMANAGER_RECEIVER_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
#include <optional>
19
#include <string>
20
21
namespace
dunedaq::iomanager
{
22
23
// Typeless
24
class
Receiver
:
public
utilities::NamedObject
25
{
26
public
:
27
using
timeout_t
= std::chrono::milliseconds;
28
static
constexpr
timeout_t
s_block
= timeout_t::max();
29
static
constexpr
timeout_t
s_no_block
= timeout_t::zero();
30
31
explicit
Receiver
(
ConnectionId
const
& this_conn)
32
:
utilities
::
NamedObject
(this_conn.uid)
33
,
m_conn
(this_conn)
34
{
35
}
36
37
virtual
~Receiver
() =
default
;
38
39
ConnectionId
id
()
const
{
return
m_conn
; }
40
41
protected
:
42
ConnectionId
m_conn
;
43
};
44
45
// Interface
46
template
<
typename
Datatype>
47
class
ReceiverConcept
:
public
Receiver
48
{
49
public
:
50
explicit
ReceiverConcept
(
ConnectionId
const
& conn_id)
51
:
Receiver
(conn_id)
52
{
53
}
54
virtual
Datatype
receive
(
Receiver::timeout_t
timeout) = 0;
55
virtual
std::optional<Datatype>
try_receive
(
Receiver::timeout_t
timeout) = 0;
56
virtual
bool
data_pending
() = 0;
57
virtual
void
add_callback
(std::function<
void
(Datatype&)> callback) = 0;
58
virtual
void
remove_callback
() = 0;
59
virtual
void
subscribe
(std::string topic) = 0;
60
virtual
void
unsubscribe
(std::string topic) = 0;
61
};
62
63
}
// namespace dunedaq::iomanager
64
65
#endif
// IOMANAGER_INCLUDE_IOMANAGER_RECEIVER_HPP_
NamedObject.hpp
SchemaUtils.hpp
dunedaq::iomanager::ReceiverConcept::ReceiverConcept
ReceiverConcept(ConnectionId const &conn_id)
Definition
Receiver.hpp:50
dunedaq::iomanager::ReceiverConcept::data_pending
virtual bool data_pending()=0
dunedaq::iomanager::ReceiverConcept::receive
virtual Datatype receive(Receiver::timeout_t timeout)=0
dunedaq::iomanager::ReceiverConcept::add_callback
virtual void add_callback(std::function< void(Datatype &)> callback)=0
dunedaq::iomanager::ReceiverConcept::try_receive
virtual std::optional< Datatype > try_receive(Receiver::timeout_t timeout)=0
dunedaq::iomanager::ReceiverConcept::subscribe
virtual void subscribe(std::string topic)=0
dunedaq::iomanager::ReceiverConcept::unsubscribe
virtual void unsubscribe(std::string topic)=0
dunedaq::iomanager::ReceiverConcept::remove_callback
virtual void remove_callback()=0
dunedaq::iomanager::Receiver::Receiver
Receiver(ConnectionId const &this_conn)
Definition
Receiver.hpp:31
dunedaq::iomanager::Receiver::s_block
static constexpr timeout_t s_block
Definition
Receiver.hpp:28
dunedaq::iomanager::Receiver::m_conn
ConnectionId m_conn
Definition
Receiver.hpp:42
dunedaq::iomanager::Receiver::timeout_t
std::chrono::milliseconds timeout_t
Definition
Receiver.hpp:27
dunedaq::iomanager::Receiver::s_no_block
static constexpr timeout_t s_no_block
Definition
Receiver.hpp:29
dunedaq::iomanager::Receiver::id
ConnectionId id() const
Definition
Receiver.hpp:39
dunedaq::iomanager::Receiver::~Receiver
virtual ~Receiver()=default
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