1 #ifndef ERIS_RESPONSE_H 2 #define ERIS_RESPONSE_H 4 #include <Atlas/Objects/ObjectsFwd.h> 5 #include <unordered_map> 12 std::string getErrorMessage(
const Atlas::Objects::Operation::RootOperation & err);
23 virtual Router::RouterResult
responseReceived(
const Atlas::Objects::Operation::RootOperation& op) = 0;
29 Router::RouterResult
responseReceived(
const Atlas::Objects::Operation::RootOperation&)
override;
32 void* clearMemberResponse(
void*);
38 typedef void (T::*T_method)(
const Atlas::Objects::Operation::RootOperation& op);
40 MemberResponse(T *obj,
void (T::*method)(
const Atlas::Objects::Operation::RootOperation& op)) :
44 obj->add_destroy_notify_callback(&m_object, &clearMemberResponse);
47 ~MemberResponse()
override {
48 if (m_object) m_object->remove_destroy_notify_callback(&m_object);
51 Router::RouterResult
responseReceived(
const Atlas::Objects::Operation::RootOperation& op)
override {
52 if (m_object) (m_object->*m_func)(op);
53 return Router::HANDLED;
65 typedef std::function<Router::RouterResult(const Atlas::Objects::Operation::RootOperation& op)> Callback;
71 void await(
long serial, Callback callback);
74 void await(
long serial, T* ins,
void (T::*method)(
const Atlas::Objects::Operation::RootOperation& op) )
79 void ignore(
long serial)
84 Router::RouterResult handleOp(
const Atlas::Objects::Operation::RootOperation& op);
87 typedef std::unordered_map<long, ResponseBase*> RefnoResponseMap;
89 std::unordered_map<long, Callback> m_pending;
94 #endif // of ERIS_RESPONSE_H Router::RouterResult responseReceived(const Atlas::Objects::Operation::RootOperation &op) override
Process a response.
Definition: Response.h:51
Definition: Response.h:35
Definition: Response.h:15
Definition: Response.h:26
Every Eris class and type lives inside the Eris namespace; certain utility functions live in the Util...
Definition: Account.cpp:34
Definition: Response.h:61
virtual Router::RouterResult responseReceived(const Atlas::Objects::Operation::RootOperation &op)=0
Process a response.