add register/update shortcut
[apps/agl-service-homescreen.git] / src / hs-client.h
index 16fa39c..985ecf1 100644 (file)
@@ -18,7 +18,9 @@
 #define HOMESCREEN_CLIENT_H
 
 #include <string>
+#include <unordered_set>
 #include <unordered_map>
+#include <list>
 #include "hs-helper.h"
 
 
@@ -30,25 +32,35 @@ public:
     HS_Client &operator=(HS_Client&) = delete;
     ~HS_Client();
 
-    int tap_shortcut(const char* appid);
-    int showWindow(afb_req_t request, const char* appid);
+    int handleRequest(afb_req_t request, const char *verb);
+    int pushEvent(const char *event, struct json_object *param);
+
+private:
+    int tap_shortcut(afb_req_t request);
+    int on_screen_message (afb_req_t request);
+    int on_screen_reply (afb_req_t request);
+    int showWindow(afb_req_t request);
     int hideWindow(afb_req_t request);
-    int replyShowWindow(afb_req_t request, const char* appid);
-    int on_screen_message (afb_req_t request, const char* message);
-    int on_screen_reply (afb_req_t request, const char* message);
-    int subscribe(afb_req_t request, const char* event);
-    int unsubscribe(afb_req_t request, const char* event);
+    int replyShowWindow(afb_req_t request);
+    int subscribe(afb_req_t request);
+    int unsubscribe(afb_req_t request);
     int showNotification(afb_req_t request);
     int showInformation(afb_req_t request);
+    int registerShortcut(afb_req_t request);
+    int updateShortcut(afb_req_t request);
 
-private:
+    typedef int (HS_Client::*func_handler)(afb_req_t);
+    static const std::unordered_map<std::string, func_handler> func_list;
     bool checkEvent(const char* event);
+    bool isSupportEvent(const char* event);
+    void pushUpdateShortcutEvent(void);
 
 private:
     std::string my_id;
     afb_event_t my_event;
-    std::unordered_map<std::string, int> event_list;
-
+    bool subscription = false;
+    std::unordered_set<std::string> event_list;
+    static std::list<std::pair<std::string, std::string>> shortcut_list;
 };
 
 #endif // HOMESCREEN_CLIENT_H
\ No newline at end of file