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>
21 #include <rad/assert.hpp>
22 #include <rad/exceptions.hpp>
23 #include <rad/logger.hpp>
33 const std::string& endpoint,
const std::string& identity, boost::asio::io_service& 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_service& 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_service& 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_service& m_io_ctx;
136 azmq::dealer_socket m_socket;
virtual ~MsgRequestorRaw()
Definition: msgRequestorRaw.cpp:51
std::function< void(const std::error_code &, std::string const &, const void *, const size_t)> handler_t
Definition: msgRequestorRaw.hpp:74
Definition: msgRequestorRaw.hpp:30
void AsyncReceive(handler_t handler, std::chrono::milliseconds const timeout=std::chrono::milliseconds(0))
Definition: msgRequestorRaw.cpp:312
size_t AsyncSend(std::string const &payload_type, std::string const &payload)
Definition: msgRequestorRaw.cpp:294
~MsgRequestorRaw2()
Definition: msgRequestorRaw.cpp:261
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:285
Definition: msgRequestorRaw.hpp:71
def handler
Definition: test_dispatcher.py:11
size_t Send(const std::string &payload_type, const std::string &payload, const long timeout=0)
Definition: msgRequestorRaw.cpp:65
MsgRequestorRaw & operator=(const MsgRequestorRaw &)=delete
MsgRequestorRaw2(const std::string &endpoint, const std::string &identity, boost::asio::io_service &io_ctx)
Definition: msgRequestorRaw.cpp:238
MsgRequestorRaw(const std::string &endpoint, const std::string &identity, boost::asio::io_service &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:28
void Cancel() noexcept
Definition: msgRequestorRaw.cpp:274