diff options
Diffstat (limited to 'src/hs-clientmanager.h')
-rw-r--r-- | src/hs-clientmanager.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/hs-clientmanager.h b/src/hs-clientmanager.h index a568298..49968f1 100644 --- a/src/hs-clientmanager.h +++ b/src/hs-clientmanager.h @@ -57,6 +57,7 @@ public: int unsubscribe(afb_req_t request); int showNotification(afb_req_t request); int showInformation(afb_req_t request); + int handleRequest(const char *verb, afb_req_t request); int pushEvent(const char *event, struct json_object *param, std::string appid = ""); private: @@ -64,6 +65,20 @@ private: HS_Client* addClient(afb_req_t req, std::string appid); void removeClient(std::string appid); + typedef int (HS_ClientManager::*func_handler)(afb_req_t); + const std::unordered_map<std::string, func_handler> func_list { + {"tap_shortcut", &HS_ClientManager::tap_shortcut}, + {"showWindow", &HS_ClientManager::showWindow}, + {"hideWindow", &HS_ClientManager::hideWindow}, + {"replyShowWindow", &HS_ClientManager::replyShowWindow}, + {"on_screen_message", &HS_ClientManager::on_screen_message}, + {"on_screen_reply", &HS_ClientManager::on_screen_reply}, + {"subscribe", &HS_ClientManager::subscribe}, + {"unsubscribe", &HS_ClientManager::unsubscribe}, + {"showNotification", &HS_ClientManager::showNotification}, + {"showInformation", &HS_ClientManager::showInformation} + }; + private: static HS_ClientManager* me; std::unordered_map<std::string, HS_Client*> client_list; |