9#ifndef RAD_MSG_REQUESTOR_RAW_HPP
10#define RAD_MSG_REQUESTOR_RAW_HPP
14#include <azmq/message.hpp>
15#include <azmq/socket.hpp>
17#include <boost/asio.hpp>
19#include <google/protobuf/message.h>
33 const std::string& endpoint,
const std::string& identity, boost::asio::io_context& ios,
34 std::function<
void(
const std::error_code& err_code,
const std::string& msg_type_id,
35 const void* data,
const size_t data_size)>
39 size_t Send(
const std::string& payload_type,
const std::string& payload,
40 const long timeout = 0);
46 void ReplyCallback(
const boost::system::error_code& err_code, azmq::message& msg,
48 void TimeoutCallback(
const boost::system::error_code& err_code);
49 bool InstallTimer(
const long timeout );
52 std::string m_endpoint;
53 std::string m_identity;
54 boost::asio::io_context& m_ios;
55 azmq::dealer_socket m_socket;
56 boost::asio::deadline_timer* m_deadline_timer;
58 std::function<void(
const std::error_code& err_code, std::string
const& msg_type_id,
59 const void* data,
const size_t data_size)>
73 std::function<void(
const std::error_code& , std::string
const& ,
74 const void* ,
const size_t )>;
81 boost::asio::io_context& io_ctx);
93 size_t AsyncSendReceive(std::string
const& payload_type, std::string
const& payload,
95 std::chrono::milliseconds
const timeout = std::chrono::milliseconds(0));
108 size_t AsyncSend(std::string
const& payload_type, std::string
const& payload);
121 std::chrono::milliseconds
const timeout = std::chrono::milliseconds(0));
133 std::
string m_endpoint;
134 std::
string m_identity;
135 boost::asio::io_context& m_io_ctx;
136 azmq::dealer_socket m_socket;
Definition msgRequestorRaw.hpp:30
virtual ~MsgRequestorRaw()
Definition msgRequestorRaw.cpp:53
MsgRequestorRaw(const std::string &endpoint, const std::string &identity, boost::asio::io_context &ios, std::function< void(const std::error_code &err_code, const std::string &msg_type_id, const void *data, const size_t data_size)> reply_handler)
Definition msgRequestorRaw.cpp:30
size_t Send(const std::string &payload_type, const std::string &payload, const long timeout=0)
Definition msgRequestorRaw.cpp:67
MsgRequestorRaw & operator=(const MsgRequestorRaw &)=delete
MsgRequestorRaw(const MsgRequestorRaw &)=delete
Exception classes header file.
Definition actionsApp.cpp:23
Definition msgRequestorRaw.hpp:71
size_t AsyncSendReceive(std::string const &payload_type, std::string const &payload, handler_t handler, std::chrono::milliseconds const timeout=std::chrono::milliseconds(0))
Definition msgRequestorRaw.cpp:287
size_t AsyncSend(std::string const &payload_type, std::string const &payload)
Definition msgRequestorRaw.cpp:296
~MsgRequestorRaw2()
Definition msgRequestorRaw.cpp:263
MsgRequestorRaw2(const std::string &endpoint, const std::string &identity, boost::asio::io_context &io_ctx)
Definition msgRequestorRaw.cpp:240
std::function< void(const std::error_code &, std::string const &, const void *, const size_t)> handler_t
Definition msgRequestorRaw.hpp:72
void AsyncReceive(handler_t handler, std::chrono::milliseconds const timeout=std::chrono::milliseconds(0))
Definition msgRequestorRaw.cpp:314
void Cancel() noexcept
Definition msgRequestorRaw.cpp:276