DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
ipm
src
CallbackAdapter.hpp
Go to the documentation of this file.
1
12
13
#ifndef IPM_SRC_CALLBACKADAPTER_HPP_
14
#define IPM_SRC_CALLBACKADAPTER_HPP_
15
16
#include "
ipm/Receiver.hpp
"
17
18
#include <atomic>
19
#include <functional>
20
#include <memory>
21
#include <mutex>
22
#include <thread>
23
24
namespace
dunedaq::ipm
{
25
26
class
CallbackAdapter
27
{
28
public
:
29
CallbackAdapter
() =
default
;
// Explicitly defaulted
30
31
virtual
~CallbackAdapter
() noexcept;
32
33
void
set_receiver
(
Receiver
* receiver_ptr);
34
void
set_callback
(
std
::function<
void
(
Receiver
::Response&)> callback);
35
void
clear_callback
();
36
37
private:
38
void
startup
();
39
void
shutdown
();
40
void
thread_loop
();
41
42
Receiver
*
m_receiver_ptr
{
nullptr
};
// Bare pointer used here as CallbackAdapter does not own the Receiver instance,
43
// and until set_receiver is called, this will be null.
44
std::function<void(
Receiver::Response
&)>
m_callback
{
nullptr
};
45
mutable
std::mutex
m_callback_mutex
;
46
std::unique_ptr<std::thread>
m_thread
{
nullptr
};
47
std::atomic<bool>
m_is_listening
{
false
};
48
};
49
}
// namespace dunedaq::ipm
50
51
#endif
// IPM_SRC_CALLBACKADAPTER_HPP_
dunedaq::ipm::CallbackAdapter::m_callback
std::function< void(Receiver::Response &)> m_callback
Definition
CallbackAdapter.hpp:44
dunedaq::ipm::CallbackAdapter::m_receiver_ptr
Receiver * m_receiver_ptr
Definition
CallbackAdapter.hpp:42
dunedaq::ipm::CallbackAdapter::thread_loop
void thread_loop()
Definition
CallbackAdapter.cpp:89
dunedaq::ipm::CallbackAdapter::set_callback
void set_callback(std::function< void(Receiver::Response &)> callback)
Definition
CallbackAdapter.cpp:44
dunedaq::ipm::CallbackAdapter::m_callback_mutex
std::mutex m_callback_mutex
Definition
CallbackAdapter.hpp:45
dunedaq::ipm::CallbackAdapter::~CallbackAdapter
virtual ~CallbackAdapter() noexcept
Definition
CallbackAdapter.cpp:20
dunedaq::ipm::CallbackAdapter::startup
void startup()
Definition
CallbackAdapter.cpp:77
dunedaq::ipm::CallbackAdapter::CallbackAdapter
CallbackAdapter()=default
dunedaq::ipm::CallbackAdapter::m_thread
std::unique_ptr< std::thread > m_thread
Definition
CallbackAdapter.hpp:46
dunedaq::ipm::CallbackAdapter::m_is_listening
std::atomic< bool > m_is_listening
Definition
CallbackAdapter.hpp:47
dunedaq::ipm::CallbackAdapter::shutdown
void shutdown()
Definition
CallbackAdapter.cpp:67
dunedaq::ipm::CallbackAdapter::set_receiver
void set_receiver(Receiver *receiver_ptr)
Definition
CallbackAdapter.cpp:31
dunedaq::ipm::CallbackAdapter::clear_callback
void clear_callback()
Definition
CallbackAdapter.cpp:57
dunedaq::ipm::Receiver
Definition
Receiver.hpp:74
Receiver.hpp
dunedaq::ipm
An ERS Error indicating that an exception was thrown from ZMQ while performing an operation.
Definition
PluginInfo.hpp:26
std
Definition
SchemaUtils.hpp:118
dunedaq::ipm::Receiver::Response
Definition
Receiver.hpp:104
Generated on
for DUNE-DAQ by
1.17.0