diff options
Diffstat (limited to 'modules/codec/c++/rpc.hpp')
-rw-r--r-- | modules/codec/c++/rpc.hpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/modules/codec/c++/rpc.hpp b/modules/codec/c++/rpc.hpp new file mode 100644 index 0000000..e275102 --- /dev/null +++ b/modules/codec/c++/rpc.hpp @@ -0,0 +1,29 @@ +#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> + struct request { + private: + std::tuple<id<T>...> ids_; + public: + error_or<data<schema::Tuple<T>...>> wait(); + }; + + template<typename... T> + request<T...> request_data(id<T>... data); +}; + +template<typename T, typename Iface> +class rpc_server { +}; +} |