From 773fffb0c3596c93ae1522f6ef5eaaed4ad54e14 Mon Sep 17 00:00:00 2001 From: Claudius 'keldu' Holeksa Date: Fri, 26 Jul 2024 21:44:23 +0200 Subject: wip --- modules/remote/c++/remote_loopback.hpp | 9 +++++++++ modules/remote/c++/transfer_loopback.hpp | 11 ++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) (limited to 'modules/remote/c++') diff --git a/modules/remote/c++/remote_loopback.hpp b/modules/remote/c++/remote_loopback.hpp index 10ac79c..ea4eb8e 100644 --- a/modules/remote/c++/remote_loopback.hpp +++ b/modules/remote/c++/remote_loopback.hpp @@ -86,6 +86,7 @@ public: template<> class remote { private: + std::map> registered_data_servers_; public: /** * Resolves an address for the remote @@ -107,5 +108,13 @@ public: rpc_server listen(const remote_address& addr, typename rpc_server::InterfaceT iface){ return {addr, std::move(iface)}; } + + /** + * Start data server + */ + template + data_server data_listen(const remote_address& addr){ + return {addr,*this}; + } }; } diff --git a/modules/remote/c++/transfer_loopback.hpp b/modules/remote/c++/transfer_loopback.hpp index 9d026f2..2e01509 100644 --- a/modules/remote/c++/transfer_loopback.hpp +++ b/modules/remote/c++/transfer_loopback.hpp @@ -16,7 +16,16 @@ private: ptr> remote_; public: - data_server(remote_address& addr) + data_server(remote_address& addr){ + remote->register_server(addr); + } + + ~data_server(){ + remote->deregister_server(addr); + } + + SAW_FORBID_COPY(data_server); + SAW_FORBID_MOVE(data_server); /** * Get data from client -- cgit v1.2.3