App/binding: move binding_api impl to its own source file.
authorMarcus Fritzsch <marcus_fritzsch@mentor.com>
Tue, 5 Sep 2017 13:51:20 +0000 (15:51 +0200)
committerMarcus Fritzsch <marcus_fritzsch@mentor.com>
Tue, 5 Sep 2017 13:51:42 +0000 (15:51 +0200)
Signed-off-by: Marcus Fritzsch <marcus_fritzsch@mentor.com>
src/CMakeLists.txt
src/afb_binding_api.cpp [new file with mode: 0644]
src/app.cpp

index 606192c..0ef0eb5 100644 (file)
@@ -24,6 +24,7 @@ add_library(winman MODULE
    json_helper.cpp
    json_helper.hpp
    app.hpp app.cpp
+   afb_binding_api.cpp
    result.hpp
    afb_binding_api.hpp
    afb_binding_glue.inl layers.cpp layers.hpp controller_hooks.hpp config.cpp config.hpp)
diff --git a/src/afb_binding_api.cpp b/src/afb_binding_api.cpp
new file mode 100644 (file)
index 0000000..d0df3b6
--- /dev/null
@@ -0,0 +1,102 @@
+/*
+ * Copyright (C) 2017 Mentor Graphics Development (Deutschland) GmbH
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "app.hpp"
+#include "json_helper.hpp"
+
+#include <csignal>
+
+#include <json.hpp>
+
+using json = nlohmann::json;
+
+#include <json-c/json.h>
+
+namespace wm {
+//  _     _           _ _                            _   _                 _
+// | |__ (_)_ __   __| (_)_ __   __ _     __ _ _ __ (_) (_)_ __ ___  _ __ | |
+// | '_ \| | '_ \ / _` | | '_ \ / _` |   / _` | '_ \| | | | '_ ` _ \| '_ \| |
+// | |_) | | | | | (_| | | | | | (_| |  | (_| | |_) | | | | | | | | | |_) | |
+// |_.__/|_|_| |_|\__,_|_|_| |_|\__, |___\__,_| .__/|_| |_|_| |_| |_| .__/|_|
+//                              |___/_____|   |_|                   |_|
+binding_api::result_type binding_api::request_surface(
+   char const *drawing_name) {
+   auto r = this->app->request_surface(drawing_name);
+   if (r.is_err()) {
+      return Err<json_object *>(r.unwrap_err());
+   }
+   return Ok(json_object_new_int(r.unwrap()));
+}
+
+binding_api::result_type binding_api::activate_surface(
+   char const *drawing_name) {
+   logdebug("%s drawing_name %s", __func__, drawing_name);
+   auto r = this->app->activate_surface(drawing_name);
+   if (r != nullptr) {
+      logdebug("%s failed with error: %s", __func__, r);
+      return Err<json_object *>(r);
+   }
+   return Ok(json_object_new_object());
+}
+
+binding_api::result_type binding_api::deactivate_surface(char const* drawing_name) {
+   logdebug("%s drawing_name %s", __func__, drawing_name);
+   auto r = this->app->deactivate_surface(drawing_name);
+   if (r != nullptr) {
+      logdebug("%s failed with error: %s", __func__, r);
+      return Err<json_object *>(r);
+   }
+   return Ok(json_object_new_object());
+}
+
+binding_api::result_type binding_api::enddraw(char const* drawing_name) {
+   logdebug("%s drawing_name %s", __func__, drawing_name);
+   return Err<json_object*>("not implemented");
+}
+
+binding_api::result_type binding_api::list_drawing_names() {
+   logdebug("%s", __func__);
+   json j = this->app->id_alloc.name2id;
+   return Ok(json_tokener_parse(j.dump().c_str()));
+}
+
+binding_api::result_type binding_api::debug_layers() {
+   logdebug("%s", __func__);
+   return Ok(json_tokener_parse(this->app->layers.to_json().dump().c_str()));
+}
+
+binding_api::result_type binding_api::debug_surfaces() {
+   logdebug("%s", __func__);
+   return Ok(to_json(this->app->controller->sprops));
+}
+
+binding_api::result_type binding_api::debug_status() {
+   logdebug("%s", __func__);
+   json_object *jr = json_object_new_object();
+   json_object_object_add(jr, "surfaces",
+                          to_json(this->app->controller->sprops));
+   json_object_object_add(jr, "layers", to_json(this->app->controller->lprops));
+   return Ok(jr);
+}
+
+binding_api::result_type binding_api::debug_terminate() {
+   logdebug("%s", __func__);
+   raise(SIGKILL);  // XXX afb-daemon kills it's pgroup using TERM, which
+                    // doesn't play well with perf
+   return Ok(json_object_new_object());
+}
+
+}  // namespace wm
index 2bb74b4..1c7382d 100644 (file)
@@ -517,79 +517,6 @@ void App::deactivate(unsigned id) {
    }
 }
 
-//  _     _           _ _                            _   _                 _
-// | |__ (_)_ __   __| (_)_ __   __ _     __ _ _ __ (_) (_)_ __ ___  _ __ | |
-// | '_ \| | '_ \ / _` | | '_ \ / _` |   / _` | '_ \| | | | '_ ` _ \| '_ \| |
-// | |_) | | | | | (_| | | | | | (_| |  | (_| | |_) | | | | | | | | | |_) | |
-// |_.__/|_|_| |_|\__,_|_|_| |_|\__, |___\__,_| .__/|_| |_|_| |_| |_| .__/|_|
-//                              |___/_____|   |_|                   |_|
-binding_api::result_type binding_api::request_surface(
-   char const *drawing_name) {
-   auto r = this->app->request_surface(drawing_name);
-   if (r.is_err()) {
-      return Err<json_object *>(r.unwrap_err());
-   }
-   return Ok(json_object_new_int(r.unwrap()));
-}
-
-binding_api::result_type binding_api::activate_surface(
-   char const *drawing_name) {
-   logdebug("%s drawing_name %s", __func__, drawing_name);
-   auto r = this->app->activate_surface(drawing_name);
-   if (r != nullptr) {
-      logdebug("%s failed with error: %s", __func__, r);
-      return Err<json_object *>(r);
-   }
-   return Ok(json_object_new_object());
-}
-
-binding_api::result_type binding_api::deactivate_surface(char const* drawing_name) {
-   logdebug("%s drawing_name %s", __func__, drawing_name);
-   auto r = this->app->deactivate_surface(drawing_name);
-   if (r != nullptr) {
-      logdebug("%s failed with error: %s", __func__, r);
-      return Err<json_object *>(r);
-   }
-   return Ok(json_object_new_object());
-}
-
-binding_api::result_type binding_api::enddraw(char const* drawing_name) {
-   logdebug("%s drawing_name %s", __func__, drawing_name);
-   return Err<json_object*>("not implemented");
-}
-
-binding_api::result_type binding_api::list_drawing_names() {
-   logdebug("%s", __func__);
-   json j = this->app->id_alloc.name2id;
-   return Ok(json_tokener_parse(j.dump().c_str()));
-}
-
-binding_api::result_type binding_api::debug_layers() {
-   logdebug("%s", __func__);
-   return Ok(json_tokener_parse(this->app->layers.to_json().dump().c_str()));
-}
-
-binding_api::result_type binding_api::debug_surfaces() {
-   logdebug("%s", __func__);
-   return Ok(to_json(this->app->controller->sprops));
-}
-
-binding_api::result_type binding_api::debug_status() {
-   logdebug("%s", __func__);
-   json_object *jr = json_object_new_object();
-   json_object_object_add(jr, "surfaces",
-                          to_json(this->app->controller->sprops));
-   json_object_object_add(jr, "layers", to_json(this->app->controller->lprops));
-   return Ok(jr);
-}
-
-binding_api::result_type binding_api::debug_terminate() {
-   logdebug("%s", __func__);
-   raise(SIGKILL);  // XXX afb-daemon kills it's pgroup using TERM, which
-                    // doesn't play well with perf
-   return Ok(json_object_new_object());
-}
-
 //                  _             _ _            _                 _
 //   ___ ___  _ __ | |_ _ __ ___ | | | ___ _ __ | |__   ___   ___ | | _____
 //  / __/ _ \| '_ \| __| '__/ _ \| | |/ _ \ '__|| '_ \ / _ \ / _ \| |/ / __|