Merge branch 'sandbox/knimitz/fix_set_role'
[apps/agl-service-windowmanager.git] / src / window_manager.hpp
index 96dbfe6..6811110 100644 (file)
@@ -135,6 +135,17 @@ struct TmpClient
     unsigned pid;
 };
 
+struct TmpService
+{
+    std::string appid;  // Used to search who create service surface
+    std::string dest;   // Used to attach service to destination application
+    std::string service;// The name of service surface
+    std::string uuid;   // uuid
+    TmpService(const std::string& app, const std::string& dst,
+               const std::string& svc, const std::string& uuid)
+    : appid(app), dest(dst), service(svc), uuid(uuid) {}
+};
+
 class WindowManager
 {
   public:
@@ -178,6 +189,7 @@ class WindowManager
     void api_deactivate_surface(char const *appid, char const *role, const reply_func &reply);
     void api_enddraw(char const *appid, char const *role);
     bool api_client_set_render_order(const char *appid, const std::vector<std::string> &render_order);
+    std::string api_client_attach_service_surface(const char* appid, const char* dest, const char* service_surface);
     result<json_object *> api_get_display_info();
     result<json_object *> api_get_area_info(char const *role);
     void send_event(char const *evname, char const *label);
@@ -195,6 +207,8 @@ class WindowManager
     void timerHandler();
     void startTransitionWrapper(std::vector<WMAction> &actions);
     void processError(WMError error);
+    std::string searchApp(unsigned pid, unsigned ppid, unsigned surface, json_object* resp);
+    void storeSurface(const std::string& appid, unsigned ppid, unsigned surface);
 
     const std::vector<const char *> kListEventName{
         "active",
@@ -248,7 +262,7 @@ class WindowManager
     rect_map area_info;
     // FOR CES DEMO
     std::unordered_map<unsigned, struct TmpClient> tmp_surface2app;
-    std::vector<struct TmpClient> tmp_apps;
+    std::vector<struct TmpService> tmp_services;
     static const char* kDefaultOldRoleDb;
 };