From 23c6b9cb5ec8186584c05fe0db0d0dcdc1c56d28 Mon Sep 17 00:00:00 2001 From: Gluzskiy Alexandr Date: Fri, 20 Nov 2015 10:41:35 +0300 Subject: server: a bit of work with event system --- server/include/client.h | 1 + server/include/event_subscription_base.h | 12 ++++++++++++ server/include/server_session.h | 2 ++ 3 files changed, 15 insertions(+) (limited to 'server/include') diff --git a/server/include/client.h b/server/include/client.h index 239ae4b..22b2ce8 100644 --- a/server/include/client.h +++ b/server/include/client.h @@ -32,6 +32,7 @@ class client public: client(std::string &client_auth_token, server_session *sess = nullptr); void add_event_subscription(event_subscription_base* e); + const std::list& get_subscriptions(); virtual ~client(); protected: private: diff --git a/server/include/event_subscription_base.h b/server/include/event_subscription_base.h index 0e5b790..97c6e62 100644 --- a/server/include/event_subscription_base.h +++ b/server/include/event_subscription_base.h @@ -37,9 +37,21 @@ public: { subscription_request = *req; } + bool operator==(const SUBSCRIPTION_TYPE t) + { + return subscription_request.type() == t; + } + const EVENT_SUBTYPE get_subtype() + { + return subtype; + } + virtual ~event_subscription_base(){} protected: EVENT_SUBTYPE subtype = EVENT_SUBTYPE::EVENT_SUBTYPE_EVENT; client_event_subscription_request subscription_request; }; + + + #endif // EVENT_SUBSCRIPTION_H diff --git a/server/include/server_session.h b/server/include/server_session.h index a4c570b..b03a38b 100644 --- a/server/include/server_session.h +++ b/server/include/server_session.h @@ -26,6 +26,7 @@ #include "config.h" #include "client.h" #include "download_internal.h" +#include "../../protocol/udm.pb.h" class client_msg; class server_msg; @@ -55,6 +56,7 @@ private: bool handle_command(client_msg* msg); void send_download_list(); + void fire_event(SUBSCRIPTION_TYPE type, server_msg &msg); char* recv_data_ = nullptr; socket_wraper* socket_ = nullptr; -- cgit v1.2.3