summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorClaudius "keldu" Holeksa <mail@keldu.de>2024-03-11 16:41:25 +0100
committerClaudius "keldu" Holeksa <mail@keldu.de>2024-03-11 16:42:13 +0100
commit472f6b3d06cdeaedffff2fd1ae1374e34175ac96 (patch)
tree0c96f4329cf5578bac2fb2971c4ea88589ce8883 /modules
parentff342be6178fd0e4a9b7a5f9653ac5d8dc979d49 (diff)
codec: Fixing up some type issues in the rpc layer
Diffstat (limited to 'modules')
-rw-r--r--modules/codec/c++/rpc.hpp31
1 files changed, 18 insertions, 13 deletions
diff --git a/modules/codec/c++/rpc.hpp b/modules/codec/c++/rpc.hpp
index e275102..e920a10 100644
--- a/modules/codec/c++/rpc.hpp
+++ b/modules/codec/c++/rpc.hpp
@@ -1,29 +1,34 @@
#pragma once
namespace saw {
-template<typename T>
-class remote {
- static_assert(always_false<T>, "Type of remote not supported");
-
- template<typename Iface>
- rpc_client<T,Iface> connect();
-};
-
+/**
+ */
template<typename T, typename Iface>
class rpc_client {
- template<typename... T>
+ template<typename... IdT>
struct request {
private:
- std::tuple<id<T>...> ids_;
+ std::tuple<id<IdT>...> ids_;
public:
- error_or<data<schema::Tuple<T>...>> wait();
+ error_or<data<schema::Tuple<IdT>...>> wait();
};
- template<typename... T>
- request<T...> request_data(id<T>... data);
+ template<typename... IdT>
+ request<IdT...> request_data(id<IdT>... data);
};
template<typename T, typename Iface>
class rpc_server {
};
+
+template<typename T>
+class remote {
+ static_assert(always_false<T>, "Type of remote not supported");
+
+ template<typename Iface>
+ rpc_client<T,Iface> connect();
+
+ template<typename Iface>
+ rpc_server<T,Iface> listen();
+};
}