diff options
author | Claudius "keldu" Holeksa <mail@keldu.de> | 2024-03-11 16:41:25 +0100 |
---|---|---|
committer | Claudius "keldu" Holeksa <mail@keldu.de> | 2024-03-11 16:42:13 +0100 |
commit | 472f6b3d06cdeaedffff2fd1ae1374e34175ac96 (patch) | |
tree | 0c96f4329cf5578bac2fb2971c4ea88589ce8883 /modules/codec/c++ | |
parent | ff342be6178fd0e4a9b7a5f9653ac5d8dc979d49 (diff) |
codec: Fixing up some type issues in the rpc layer
Diffstat (limited to 'modules/codec/c++')
-rw-r--r-- | modules/codec/c++/rpc.hpp | 31 |
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(); +}; } |