9using FPTR_MessageCallback = std::function<bool(
const std::vector<zmq::message_t> &, std::vector<zmq::message_t> &)>;
26 void threadFunc(
const std::stop_token &stopToken)
noexcept;
36 ZeroMQServer(
const std::string &hostAddr, std::shared_ptr<std::atomic_flag> checkFlag,
37 const std::shared_ptr<prometheus::Registry> ® =
nullptr,
const std::string &prependName =
"");
std::function< bool(const std::vector< zmq::message_t > &, std::vector< zmq::message_t > &)> FPTR_MessageCallback
bool ZeroMQServerMessageCallback(const std::vector< zmq::message_t > &recvMsgs, std::vector< zmq::message_t > &replyMsgs)
ZeroMQMonitor()=default
Constructor.
ZeroMQServer & operator=(ZeroMQServer)=delete
Copy assignment operator.
void update()
Processes new messages.
std::unique_ptr< ZeroMQStats > _stats
void messageCallback(FPTR_MessageCallback func)
std::shared_ptr< std::atomic_flag > _checkFlag
ZeroMQServer(const ZeroMQServer &)=delete
Copy constructor.
void threadFunc(const std::stop_token &stopToken) noexcept
Main thread function.
FPTR_MessageCallback messageCallback() const
std::unique_ptr< std::jthread > _serverThread
ZeroMQServer(const std::string &hostAddr, std::shared_ptr< std::atomic_flag > checkFlag, const std::shared_ptr< prometheus::Registry > ®=nullptr, const std::string &prependName="")
ZeroMQServer(ZeroMQServer &&)=delete
Move constructor.
FPTR_MessageCallback _m_messageCallback
void shutdown()
Closes the ZeroMQ Server.
ZeroMQServer & operator=(ZeroMQServer &&)=delete
Move assignment operator.
ZeroMQ(const zmq::socket_type &type, const std::string &addr, bool isBind)