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
35#include <memory>
36#include <string>
37#include <vector>
38
39namespace dunedaq::ipm {
40
41class Subscriber : public Receiver
42{
43
44public:
45 Subscriber() = default;
46
47 virtual void subscribe(std::string const& topic) = 0;
48 virtual void unsubscribe(std::string const& topic) = 0;
49
50 Subscriber(const Subscriber&) = delete;
51 Subscriber& operator=(const Subscriber&) = delete;
52
55};
56
57inline std::shared_ptr<Subscriber>
58make_ipm_subscriber(std::string const& plugin_name)
59{
60 static cet::BasicPluginFactory bpf("duneIPM", "make");
61 auto receiver_ptr = bpf.makePlugin<std::shared_ptr<Receiver>>(plugin_name);
62 return std::dynamic_pointer_cast<Subscriber>(receiver_ptr);
63}
64
65} // namespace dunedaq::ipm
66
67#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)