1 #ifndef OCF_OCM_SERVERCTL_REQUESTOR_HPP_
2 #define OCF_OCM_SERVERCTL_REQUESTOR_HPP_
5 #include <unordered_map>
8 #include <boost/asio/io_service.hpp>
9 #include <boost/program_options.hpp>
11 #include <rad/MsgRequestor.hpp>
32 virtual void AddOptions(boost::program_options::options_description& descr);
36 virtual int Handle(boost::program_options::variables_map& vm, std::vector<std::string>& opts) = 0;
53 template <
class REQ,
class REP>
56 int Handle(boost::program_options::variables_map& vm, std::vector<std::string>& opts)
override {
57 m_requestor = std::make_shared<rad::MsgRequestor2<REQ, REP>>(
m_args.
request_ep,
59 m_requestor->AsyncSendReceive(REQ(),
62 std::cout <<
"Got error: " << ec.message() << std::endl;
64 std::cout <<
"Got reply: " << rep.reply() << std::endl;
72 std::shared_ptr<rad::MsgRequestor2<REQ, REP>> m_requestor;
91 #endif // #ifndef OCF_OCM_SERVERCTL_REQUESTOR_HPP_
boost::asio::io_service & m_io_ctx
Definition: requestor.hpp:38
std::string publish_ep
Definition: requestor.hpp:18
virtual int Handle(boost::program_options::variables_map &vm, std::vector< std::string > &opts)=0
std::string request_ep
Definition: requestor.hpp:17
Definition: requestor.hpp:54
CommonArgs & operator=(CommonArgs const &)=delete
virtual ~Requestor()
Definition: requestor.hpp:27
int Handle(boost::program_options::variables_map &vm, std::vector< std::string > &opts) override
Definition: requestor.hpp:56
optional int32 error_code
Definition: topics.proto:14
virtual void AddOptions(boost::program_options::options_description &descr)
Definition: requestor.cpp:18
unsigned timeout
Definition: requestor.hpp:16
Definition: requestor.hpp:15
Definition: requestor.hpp:25
virtual std::string Synopsis()
Definition: requestor.cpp:13
Requestor(boost::asio::io_service &ctx, CommonArgs &args)
Definition: requestor.cpp:7
CommonArgs & m_args
Definition: requestor.hpp:39