1 #ifndef ERIS_RESPONSE_H
2 #define ERIS_RESPONSE_H
6 #include <Atlas/Objects/ObjectsFwd.h>
7 #include <unordered_map>
16 std::string getErrorMessage(
const Atlas::Objects::Operation::RootOperation & err);
27 virtual Router::RouterResult
responseReceived(
const Atlas::Objects::Operation::RootOperation& op) = 0;
33 Router::RouterResult
responseReceived(
const Atlas::Objects::Operation::RootOperation&)
override;
36 void* clearMemberResponse(
void*);
42 typedef void (T::*T_method)(
const Atlas::Objects::Operation::RootOperation& op);
44 MemberResponse(T *obj,
void (T::*method)(
const Atlas::Objects::Operation::RootOperation& op)) :
48 obj->add_destroy_notify_callback(&m_object, &clearMemberResponse);
52 if (m_object) m_object->remove_destroy_notify_callback(&m_object);
55 Router::RouterResult
responseReceived(
const Atlas::Objects::Operation::RootOperation& op)
override {
56 if (m_object) (m_object->*m_func)(op);
57 return Router::HANDLED;
69 typedef std::function<Router::RouterResult(
const Atlas::Objects::Operation::RootOperation& op)> Callback;
73 void await(std::int64_t serialno, std::unique_ptr<ResponseBase>);
75 void await(std::int64_t serial, Callback callback);
78 void await(std::int64_t serial, T* ins,
void (T::*method)(
const Atlas::Objects::Operation::RootOperation& op) )
83 void ignore(std::int64_t serial)
85 await(serial, std::make_unique<NullResponse>());
88 Router::RouterResult handleOp(
const Atlas::Objects::Operation::RootOperation& op);
91 std::unordered_map<std::int64_t, Callback> m_pending;
Router::RouterResult responseReceived(const Atlas::Objects::Operation::RootOperation &op) override
Router::RouterResult responseReceived(const Atlas::Objects::Operation::RootOperation &) override
virtual Router::RouterResult responseReceived(const Atlas::Objects::Operation::RootOperation &op)=0