9#ifndef RAD_SM_REQUESTOR_HPP
10#define RAD_SM_REQUESTOR_HPP
30template <
typename TYPEREQ,
typename TYPEREP>
33 SMRequestor(
const std::string& endpoint,
const std::string& identity,
38 size_t Send(
const TYPEREQ& payload,
const long timeout = 0);
46 void ReplyHandler(
const std::error_code& err_code, TYPEREP reply);
53 TYPEREP m_reply_payload;
67template <
typename TYPEREQ,
typename TYPEREP>
69 boost::asio::io_context& ios,
SMAdapter& sm,
72 : m_msg_requestor(endpoint, identity, ios,
74 std::placeholders::_1,
std::placeholders::_2)),
76 m_ok_event(
std::move(ok_event)),
77 m_err_event(
std::move(err_event)),
78 m_timeout_event(
std::move(timeout_event)) {
85template <
typename TYPEREQ,
typename TYPEREP>
97template <
typename TYPEREQ,
typename TYPEREP>
100 return m_msg_requestor.Send(payload, timeout);
110template <
typename TYPEREQ,
typename TYPEREP>
115 LOG4CPLUS_DEBUG(
GetLogger(),
"Triggering timeout event.");
116 m_sm.ProcessEvent(*m_timeout_event);
118 LOG4CPLUS_DEBUG(
GetLogger(),
"Triggering OK reply event.");
119 m_reply_payload = reply;
121 m_sm.ProcessEvent(*m_ok_event);
128template <
typename TYPEREQ,
typename TYPEREP>
131 return m_reply_payload;
AnyEvent class header file.
Definition msgRequestor.hpp:34
Definition smAdapter.hpp:60
Definition smRequestor.hpp:31
SMRequestor & operator=(const SMRequestor &)=delete
virtual ~SMRequestor()
Definition smRequestor.hpp:86
size_t Send(const TYPEREQ &payload, const long timeout=0)
Definition smRequestor.hpp:98
const TYPEREP & GetReplyPayload()
Definition smRequestor.hpp:129
SMRequestor(const std::string &endpoint, const std::string &identity, boost::asio::io_context &ios, SMAdapter &sm, UniqueEvent &&ok_event, UniqueEvent &&err_event, UniqueEvent &&timeout_event)
Definition smRequestor.hpp:68
SMRequestor(const SMRequestor &)=delete
#define RAD_TRACE(logger)
Definition logger.hpp:21
MsgRequestor class header file.
Definition actionsApp.cpp:23
std::unique_ptr< AnyEvent > UniqueEvent
Definition anyEvent.hpp:45
log4cplus::Logger & GetLogger()
Definition logger.cpp:72
SMAdapter class header file.