Change API in wm_layer
[apps/agl-service-windowmanager.git] / src / wm_layer.hpp
index b14be46..a6a359e 100644 (file)
@@ -42,6 +42,9 @@ class LayerState
     void removeLayer(unsigned layer);
     void setArea(const std::string& app, const std::string& area);
 
+    // Debug
+    void dump();
+
   private:
     std::vector<unsigned> render_order;
     std::unordered_map<std::string, std::string> area2appid;
@@ -56,22 +59,37 @@ class WMLayer
         STACK
     };
 
-    explicit WMLayer(json_object* j);
+    explicit WMLayer(json_object* j, unsigned uuid);
     ~WMLayer() = default;
+
+    // Status & Setting API
     unsigned getNewLayerID(const std::string& role);
     unsigned idBegin() { return this->id_begin; }
     unsigned idEnd()   { return this->id_end; }
+    unsigned getUuid() { return this->uuid; }
     const std::string& layerName();
     MANAGEMENT_TYPE    layerType() { return this->type; }
     void appendArea(const std::string& area);
-    void removeLayerID(unsigned id);
     LayerState& getLayerState() { return tmp_state; }
     WMError setLayerState(const LayerState& l);
     bool hasLayerID(unsigned id);
     bool hasRole(const std::string& role);
+
+    // Manipulation
+    void addLayerToState(unsigned layer);
+    void removeLayerFromState(unsigned layer);
+    void setAreaToState(const std::string& app, const std::string& area);
+    void terminateApp(unsigned layer);
+    void update();
+    void undo();
+
+    // Debug
+    void dump();
+
   private:
     LayerState tmp_state;
     LayerState state;
+    unsigned uuid;
     std::string name = ""; // Layer name
     MANAGEMENT_TYPE type;
     std::string role_list;