diff options
Diffstat (limited to 'modules/codec')
-rw-r--r-- | modules/codec/c++/rpc.h | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/modules/codec/c++/rpc.h b/modules/codec/c++/rpc.h index b21ecf8..e275102 100644 --- a/modules/codec/c++/rpc.h +++ b/modules/codec/c++/rpc.h @@ -4,23 +4,26 @@ 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> +template<typename T, typename Iface> class rpc_client { template<typename... T> struct request { private: - std::tuple<id<T>> ids_; + std::tuple<id<T>...> ids_; public: - error_or<data<T>> wait(); + error_or<data<schema::Tuple<T>...>> wait(); }; template<typename... T> request<T...> request_data(id<T>... data); }; -template<typename T> +template<typename T, typename Iface> class rpc_server { }; } |