From ab5c3e420f13b4211c40d926113c74a77738739c Mon Sep 17 00:00:00 2001
From: Nicolas Pope <nwpope@utu.fi>
Date: Wed, 5 Jun 2019 08:13:33 +0300
Subject: [PATCH] Move slave to control component

---
 CMakeLists.txt                                |  1 +
 applications/vision/CMakeLists.txt            |  2 +-
 applications/vision/src/main.cpp              |  4 ++--
 components/control/cpp/CMakeLists.txt         | 17 +++++++++++++++++
 components/control/cpp/include/ftl/slave.hpp  | 19 +++++++++++++++++++
 components/{net => control}/cpp/src/slave.cpp |  4 ++--
 components/net/cpp/CMakeLists.txt             |  1 -
 components/net/cpp/include/ftl/net/slave.hpp  | 19 -------------------
 8 files changed, 42 insertions(+), 25 deletions(-)
 create mode 100644 components/control/cpp/CMakeLists.txt
 create mode 100644 components/control/cpp/include/ftl/slave.hpp
 rename components/{net => control}/cpp/src/slave.cpp (91%)
 delete mode 100644 components/net/cpp/include/ftl/net/slave.hpp

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 57f81fc66..b81d81565 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -153,6 +153,7 @@ set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
 add_subdirectory(components/common/cpp)
 add_subdirectory(components/net)
 add_subdirectory(components/rgbd-sources)
+add_subdirectory(components/control/cpp)
 
 if (BUILD_RENDERER)
 	add_subdirectory(components/renderers)
diff --git a/applications/vision/CMakeLists.txt b/applications/vision/CMakeLists.txt
index 00cf2abaf..5ce6c5240 100644
--- a/applications/vision/CMakeLists.txt
+++ b/applications/vision/CMakeLists.txt
@@ -22,6 +22,6 @@ set_property(TARGET ftl-vision PROPERTY CUDA_SEPARABLE_COMPILATION OFF)
 endif()
 
 #target_include_directories(cv-node PUBLIC ${PROJECT_SOURCE_DIR}/include)
-target_link_libraries(ftl-vision ftlrgbd ftlcommon ftlrender Threads::Threads ${OpenCV_LIBS} ${LIBSGM_LIBRARIES} ${CUDA_LIBRARIES} glog::glog ftlnet)
+target_link_libraries(ftl-vision ftlrgbd ftlcommon ftlctrl ftlrender ${OpenCV_LIBS} ${LIBSGM_LIBRARIES} ${CUDA_LIBRARIES} ftlnet)
 
 
diff --git a/applications/vision/src/main.cpp b/applications/vision/src/main.cpp
index 149dceba5..bb77b0810 100644
--- a/applications/vision/src/main.cpp
+++ b/applications/vision/src/main.cpp
@@ -24,7 +24,7 @@
 #include <ftl/display.hpp>
 #include <ftl/rgbd_streamer.hpp>
 #include <ftl/net/universe.hpp>
-#include <ftl/net/slave.hpp>
+#include <ftl/slave.hpp>
 #include <nlohmann/json.hpp>
 
 #include "opencv2/imgproc.hpp"
@@ -81,7 +81,7 @@ void disparityToDepth(const cv::Mat &disparity, cv::Mat &depth, const cv::Mat &q
 
 static void run(ftl::Configurable *root) {
 	Universe *net = ftl::create<Universe>(root, "net");
-	ftl::net::Slave slave(net, root);
+	ftl::ctrl::Slave slave(net, root);
 
 	auto paths = root->get<vector<string>>("paths");
 	string file = "";
diff --git a/components/control/cpp/CMakeLists.txt b/components/control/cpp/CMakeLists.txt
new file mode 100644
index 000000000..9a2760048
--- /dev/null
+++ b/components/control/cpp/CMakeLists.txt
@@ -0,0 +1,17 @@
+add_library(ftlctrl
+	src/slave.cpp
+)
+
+target_include_directories(ftlctrl PUBLIC
+	$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+	$<INSTALL_INTERFACE:include>
+	PRIVATE src)
+target_link_libraries(ftlctrl ftlcommon ftlnet)
+
+install(TARGETS ftlctrl EXPORT ftlctrl-config
+	ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+	LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+	RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
+
+#ADD_SUBDIRECTORY(test)
diff --git a/components/control/cpp/include/ftl/slave.hpp b/components/control/cpp/include/ftl/slave.hpp
new file mode 100644
index 000000000..e61290d63
--- /dev/null
+++ b/components/control/cpp/include/ftl/slave.hpp
@@ -0,0 +1,19 @@
+#ifndef _FTL_CTRL_SLAVE_HPP_
+#define _FTL_CTRL_SLAVE_HPP_
+
+#include <ftl/net/universe.hpp>
+#include <ftl/configurable.hpp>
+
+namespace ftl {
+namespace ctrl {
+
+class Slave {
+	public:
+	Slave(ftl::net::Universe *, ftl::Configurable *);
+	~Slave();
+};
+
+}
+}
+
+#endif  // _FTL_CTRL_SLAVE_HPP_
diff --git a/components/net/cpp/src/slave.cpp b/components/control/cpp/src/slave.cpp
similarity index 91%
rename from components/net/cpp/src/slave.cpp
rename to components/control/cpp/src/slave.cpp
index 77394adc7..6138be467 100644
--- a/components/net/cpp/src/slave.cpp
+++ b/components/control/cpp/src/slave.cpp
@@ -1,9 +1,9 @@
-#include <ftl/net/slave.hpp>
+#include <ftl/slave.hpp>
 #include <loguru.hpp>
 
 using ftl::Configurable;
 using ftl::net::Universe;
-using ftl::net::Slave;
+using ftl::ctrl::Slave;
 
 static void netLog(void* user_data, const loguru::Message& message) {
 	Universe *net = (Universe*)user_data;
diff --git a/components/net/cpp/CMakeLists.txt b/components/net/cpp/CMakeLists.txt
index ef4a7aaba..c7e8bb341 100644
--- a/components/net/cpp/CMakeLists.txt
+++ b/components/net/cpp/CMakeLists.txt
@@ -9,7 +9,6 @@ add_library(ftlnet
 	src/dispatcher.cpp
 	src/universe.cpp
 	src/ws_internal.cpp
-	src/slave.cpp
 )
 
 target_include_directories(ftlnet PUBLIC
diff --git a/components/net/cpp/include/ftl/net/slave.hpp b/components/net/cpp/include/ftl/net/slave.hpp
deleted file mode 100644
index d973f6aef..000000000
--- a/components/net/cpp/include/ftl/net/slave.hpp
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef _FTL_NET_SLAVE_HPP_
-#define _FTL_NET_SLAVE_HPP_
-
-#include <ftl/net/universe.hpp>
-#include <ftl/configurable.hpp>
-
-namespace ftl {
-namespace net {
-
-class Slave {
-	public:
-	Slave(Universe *, ftl::Configurable *);
-	~Slave();
-};
-
-}
-}
-
-#endif  // _FTL_NET_SLAVE_HPP_
-- 
GitLab