ifw  0.0.1-dev
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SMRequestorRaw.hpp
Go to the documentation of this file.
1 
9 #ifndef RAD_SM_REQUESTOR_RAW_HPP
10 #define RAD_SM_REQUESTOR_RAW_HPP
11 
12 #include <rad/AnyEvent.hpp>
13 #include <rad/Dispatcher.hpp>
14 #include <rad/MsgHandler.hpp>
15 #include <rad/MsgRequestorRaw.hpp>
16 
17 
18 namespace rad {
19 
25 
26 public:
27  SMRequestorRaw(const std::string& endpoint,
28  const std::string& identity,
29  boost::asio::io_service& ios,
30  rad::Dispatcher& dispatcher,
31  UniqueEvent&& okEvent,
32  UniqueEvent&& errEvent,
33  UniqueEvent&& timeoutEvent);
34  virtual ~SMRequestorRaw();
35 
36  size_t Send(const std::string& payloadType,
37  const std::string& payload,
38  const long timeout = 0);
39 
40  void ReplyHandler(const std::error_code& errCode,
41  const std::string& msgTypeId,
42  const void* pData,
43  const size_t dataSize);
44 
45  const std::string& GetReplyPayloadType();
46  const std::string& GetReplyPayload();
47 
48  SMRequestorRaw(const SMRequestorRaw&) = delete;
49  SMRequestorRaw& operator= (const SMRequestorRaw&) = delete;
50 
51 private:
52  MsgRequestorRaw mMsgRequestorRaw;
53  rad::Dispatcher& mDispatcher;
54  UniqueEvent mOkEvent;
55  UniqueEvent mErrEvent;
56  UniqueEvent mTimeoutEvent;
57  std::string mReplyPayloadType;
58  std::string mReplyPayload;
59 };
60 
61 } // namespace rad
62 
63 #endif
SMRequestorRaw(const std::string &endpoint, const std::string &identity, boost::asio::io_service &ios, rad::Dispatcher &dispatcher, UniqueEvent &&okEvent, UniqueEvent &&errEvent, UniqueEvent &&timeoutEvent)
Definition: SMRequestorRaw.cpp:24
virtual ~SMRequestorRaw()
Definition: SMRequestorRaw.cpp:43
void ReplyHandler(const std::error_code &errCode, const std::string &msgTypeId, const void *pData, const size_t dataSize)
Definition: SMRequestorRaw.cpp:73
Definition: MsgRequestorRaw.hpp:30
optional bool timeout
Definition: requests.proto:13
Definition: SMRequestorRaw.hpp:24
Definition: Dispatcher.hpp:22
std::unique_ptr< AnyEvent > UniqueEvent
Definition: AnyEvent.hpp:48
SMRequestorRaw & operator=(const SMRequestorRaw &)=delete
const std::string & GetReplyPayloadType()
Definition: SMRequestorRaw.cpp:106
const std::string & GetReplyPayload()
Definition: SMRequestorRaw.cpp:97
optional int32 error_code
Definition: topics.proto:14
size_t Send(const std::string &payloadType, const std::string &payload, const long timeout=0)
Definition: SMRequestorRaw.cpp:57