9 #ifndef RAD_MSG_REQUESTOR_RAW_HPP
10 #define RAD_MSG_REQUESTOR_RAW_HPP
14 #include <azmq/socket.hpp>
15 #include <azmq/message.hpp>
17 #include <boost/asio.hpp>
19 #include <google/protobuf/message.h>
21 #include <rad/Logger.hpp>
22 #include <rad/Assert.hpp>
23 #include <rad/Exceptions.hpp>
34 const std::string& identity,
35 boost::asio::io_service& ios,
36 std::function<
void(
const std::error_code& errCode,
const std::string& msgTypeId,
const void* pData,
const size_t dataSize)> replyHandler);
39 size_t Send(
const std::string& payloadType,
const std::string& payload,
const long timeout = 0);
47 bool InstallTimer(
const long timeout );
50 std::string mEndpoint;
51 std::string mIdentity;
52 boost::asio::io_service& mIOS;
53 azmq::dealer_socket mSocket;
54 boost::asio::deadline_timer* mDeadlineTimer;
56 std::function<void(const std::error_code& errCode, std::string const& msgTypeId, const void* pData, const size_t dataSize)> mReplyHandler;
78 const std::string& identity,
79 boost::asio::io_service& ios);
92 std::string
const& payload,
94 std::chrono::milliseconds
const timeout = std::chrono::milliseconds(0));
107 size_t AsyncSend(std::string
const& payloadType,
108 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:48
size_t Send(const std::string &payloadType, const std::string &payload, const long timeout=0)
Definition: MsgRequestorRaw.cpp:62
std::function< void(const std::error_code &, std::string const &, const void *, const size_t)> handler_t
Definition: MsgRequestorRaw.hpp:71
optional string msg
Definition: topics.proto:7
MsgRequestorRaw(const std::string &endpoint, const std::string &identity, boost::asio::io_service &ios, std::function< void(const std::error_code &errCode, const std::string &msgTypeId, const void *pData, const size_t dataSize)> replyHandler)
Definition: MsgRequestorRaw.cpp:25
Definition: MsgRequestorRaw.hpp:30
optional bool timeout
Definition: requests.proto:13
size_t AsyncSend(std::string const &payloadType, std::string const &payload)
Definition: MsgRequestorRaw.cpp:276
size_t AsyncSendReceive(std::string const &payloadType, std::string const &payload, handler_t handler, std::chrono::milliseconds const timeout=std::chrono::milliseconds(0))
Definition: MsgRequestorRaw.cpp:266
void AsyncReceive(handler_t handler, std::chrono::milliseconds const timeout=std::chrono::milliseconds(0))
Definition: MsgRequestorRaw.cpp:294
~MsgRequestorRaw2()
Definition: MsgRequestorRaw.cpp:246
Definition: MsgRequestorRaw.hpp:67
def handler
Definition: test_dispatcher.py:11
optional int32 error_code
Definition: topics.proto:14
MsgRequestorRaw & operator=(const MsgRequestorRaw &)=delete
MsgRequestorRaw2(const std::string &endpoint, const std::string &identity, boost::asio::io_service &ios)
Definition: MsgRequestorRaw.cpp:222
std::string const
Definition: Test{{cookiecutter.device_name}}.cpp:209
void Cancel() noexcept
Definition: MsgRequestorRaw.cpp:256