26#ifndef IPM_INCLUDE_IPM_SUBSCRIBER_HPP_
27#define IPM_INCLUDE_IPM_SUBSCRIBER_HPP_
31#include "cetlib/BasicPluginFactory.h"
32#include "cetlib/compiler_macros.h"
34#include "nlohmann/json.hpp"
48 virtual void subscribe(std::string
const& topic) = 0;
58inline std::shared_ptr<Subscriber>
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);
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)