summaryrefslogtreecommitdiff
path: root/modules/remote/c++
diff options
context:
space:
mode:
Diffstat (limited to 'modules/remote/c++')
-rw-r--r--modules/remote/c++/remote_loopback.hpp4
-rw-r--r--modules/remote/c++/remote_loopback_base.hpp21
2 files changed, 18 insertions, 7 deletions
diff --git a/modules/remote/c++/remote_loopback.hpp b/modules/remote/c++/remote_loopback.hpp
index c651589..0e9eb2d 100644
--- a/modules/remote/c++/remote_loopback.hpp
+++ b/modules/remote/c++/remote_loopback.hpp
@@ -76,9 +76,9 @@ public:
template<string_literal Lit>
error_or<
id<
- typename schema_member_type<Lit, Iface>::type::Response
+ typename schema_member_type<Lit, Iface>::type::ResponseT
>
- > call(id<typename schema_member_type<Lit, Iface>::type::Request> id_param){
+ > call(id<typename schema_member_type<Lit, Iface>::type::RequestT> id_param){
return make_error<err::not_implemented>();
}
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<typename Iface, typename Encoding, uint64_t I>
error_or<void> find_data_servers_ele(typename rpc_server<Iface,Encoding,rmt::Loopback>::DataServers& ret_val){
-
+ if
}
template<typename Iface, typename Encoding>
error_or<typename rpc_server<Iface, Encoding, rmt::Loopback>::DataServers> find_data_servers(){
typename rpc_server<Iface,Encoding,rmt::Loopback>::DataServers ret_val;
-
+ {
+ auto eov = find_data_servers_ele<Iface,Encoding,0u>(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<typename Iface, typename Encode>
- conveyor<rpc_client<Iface, Encode, rmt::Loopback>> connect(const remote_address<rmt::Loopback>& addr);
+ conveyor<rpc_client<Iface, Encode, rmt::Loopback>> rpc_connect(const remote_address<rmt::Loopback>& addr);
/**
* Start listening
*/
template<typename Iface, typename Encode>
- error_or<own<rpc_server<Iface, Encode, rmt::Loopback>>> rpc_listen(const remote_address<rmt::Loopback>& addr, typename rpc_server<Iface,Encode,rmt::Loopback>::InterfaceT iface){
+ error_or<own<rpc_server<Iface, Encode, rmt::Loopback>>> rpc_listen(remote_address<rmt::Loopback>& addr, typename rpc_server<Iface,Encode,rmt::Loopback>::InterfaceT iface){
+
+ auto eo_dat_srvs = find_data_servers<Iface,Encode>();
+ if(eo_dat_srvs.is_error()){
+ return std::move(eo_dat_srvs.get_error());
+ }
+ auto& dat_srvs = eo_dat_srvs.get_value();
- return heap<rpc_server<Iface,Encode,rmt::Loopback>>({*this}, addr, std::move(iface));
+ return heap<rpc_server<Iface,Encode,rmt::Loopback>>(*this, addr, std::move(iface), dat_srvs);
}
/**