From 05a7fa9a2815b63b5b6f7eea107807e33aa62137 Mon Sep 17 00:00:00 2001 From: Claudius 'keldu' Holeksa Date: Tue, 22 Oct 2024 18:33:00 +0200 Subject: Trying to get the reference working --- modules/remote/c++/remote_loopback_base.hpp | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) (limited to 'modules/remote/c++/remote_loopback_base.hpp') diff --git a/modules/remote/c++/remote_loopback_base.hpp b/modules/remote/c++/remote_loopback_base.hpp index 5e5e108..7a567b2 100644 --- a/modules/remote/c++/remote_loopback_base.hpp +++ b/modules/remote/c++/remote_loopback_base.hpp @@ -54,14 +54,19 @@ private: template error_or find_data_servers_ele(typename rpc_server::DataServers& ret_val){ - + if } template error_or::DataServers> find_data_servers(){ typename rpc_server::DataServers ret_val; - + { + auto eov = find_data_servers_ele(ret_val); + if(eov.is_error()){ + return std::move(eov.get_error()); + } + } return ret_val; } @@ -77,15 +82,21 @@ public: * Connect to a remote */ template - conveyor> connect(const remote_address& addr); + conveyor> rpc_connect(const remote_address& addr); /** * Start listening */ template - error_or>> rpc_listen(const remote_address& addr, typename rpc_server::InterfaceT iface){ + error_or>> rpc_listen(remote_address& addr, typename rpc_server::InterfaceT iface){ + + auto eo_dat_srvs = find_data_servers(); + if(eo_dat_srvs.is_error()){ + return std::move(eo_dat_srvs.get_error()); + } + auto& dat_srvs = eo_dat_srvs.get_value(); - return heap>({*this}, addr, std::move(iface)); + return heap>(*this, addr, std::move(iface), dat_srvs); } /** -- cgit v1.2.3