From 3cf00b41013b350c8cce8e7ce32a4491288ac0f6 Mon Sep 17 00:00:00 2001 From: Nicolas Pope <nwpope@utu.fi> Date: Tue, 4 Jun 2019 20:00:11 +0300 Subject: [PATCH] Initial net slave code for #54 --- applications/vision/src/main.cpp | 3 +- components/net/cpp/CMakeLists.txt | 1 + components/net/cpp/include/ftl/net/slave.hpp | 19 +++++++++++++ components/net/cpp/src/slave.cpp | 29 ++++++++++++++++++++ 4 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 components/net/cpp/include/ftl/net/slave.hpp create mode 100644 components/net/cpp/src/slave.cpp diff --git a/applications/vision/src/main.cpp b/applications/vision/src/main.cpp index cc52052f6..149dceba5 100644 --- a/applications/vision/src/main.cpp +++ b/applications/vision/src/main.cpp @@ -24,6 +24,7 @@ #include <ftl/display.hpp> #include <ftl/rgbd_streamer.hpp> #include <ftl/net/universe.hpp> +#include <ftl/net/slave.hpp> #include <nlohmann/json.hpp> #include "opencv2/imgproc.hpp" @@ -80,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"); - LOG(INFO) << "Net started."; + ftl::net::Slave slave(net, root); auto paths = root->get<vector<string>>("paths"); string file = ""; diff --git a/components/net/cpp/CMakeLists.txt b/components/net/cpp/CMakeLists.txt index c7e8bb341..ef4a7aaba 100644 --- a/components/net/cpp/CMakeLists.txt +++ b/components/net/cpp/CMakeLists.txt @@ -9,6 +9,7 @@ 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 new file mode 100644 index 000000000..d973f6aef --- /dev/null +++ b/components/net/cpp/include/ftl/net/slave.hpp @@ -0,0 +1,19 @@ +#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_ diff --git a/components/net/cpp/src/slave.cpp b/components/net/cpp/src/slave.cpp new file mode 100644 index 000000000..77394adc7 --- /dev/null +++ b/components/net/cpp/src/slave.cpp @@ -0,0 +1,29 @@ +#include <ftl/net/slave.hpp> +#include <loguru.hpp> + +using ftl::Configurable; +using ftl::net::Universe; +using ftl::net::Slave; + +static void netLog(void* user_data, const loguru::Message& message) { + Universe *net = (Universe*)user_data; + net->publish("log", message.preamble, message.message); +} + +Slave::Slave(Universe *net, ftl::Configurable *root) { + net->bind("restart", []() { + LOG(WARNING) << "Remote restart..."; + exit(1); + }); + + net->bind("shutdown", []() { + LOG(WARNING) << "Remote shutdown..."; + exit(0); + }); + + loguru::add_callback("net_log", netLog, net, loguru::Verbosity_INFO); +} + +Slave::~Slave() { + +} -- GitLab