DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
Subscriber.hpp
Go to the documentation of this file.
1
26#ifndef IPM_INCLUDE_IPM_SUBSCRIBER_HPP_
27#define IPM_INCLUDE_IPM_SUBSCRIBER_HPP_
28
29#include "ipm/Receiver.hpp"
30
31#include "cetlib/BasicPluginFactory.h"
32#include "cetlib/compiler_macros.h"
33#include "ers/Issue.hpp"
34#include "nlohmann/json.hpp"
35
36#include <memory>
37#include <string>
38#include <vector>
39
40namespace dunedaq::ipm {
41
42class Subscriber : public Receiver
43{
44
45public:
46 Subscriber() = default;
47
48 virtual void subscribe(std::string const& topic) = 0;
49 virtual void unsubscribe(std::string const& topic) = 0;
50
51 Subscriber(const Subscriber&) = delete;
52 Subscriber& operator=(const Subscriber&) = delete;
53
56};
57
58inline std::shared_ptr<Subscriber>
59make_ipm_subscriber(std::string const& plugin_name)
60{
61 static cet::BasicPluginFactory bpf("duneIPM", "make");
62 auto receiver_ptr = bpf.makePlugin<std::shared_ptr<Receiver>>(plugin_name);
63 return std::dynamic_pointer_cast<Subscriber>(receiver_ptr);
64}
65
66} // namespace dunedaq::ipm
67
68#endif // IPM_INCLUDE_IPM_SUBSCRIBER_HPP_
Subscriber & operator=(const Subscriber &)=delete
virtual void subscribe(std::string const &topic)=0
virtual void unsubscribe(std::string const &topic)=0
Subscriber(const Subscriber &)=delete
Subscriber(Subscriber &&)=delete
Subscriber & operator=(Subscriber &&)=delete
An ERS Error indicating that an exception was thrown from ZMQ while performing an operation.
std::shared_ptr< Subscriber > make_ipm_subscriber(std::string const &plugin_name)