diff options
-rw-r--r-- | c++/codec/rpc.h | 24 | ||||
-rw-r--r-- | c++/io_codec/rpc.h | 17 |
2 files changed, 41 insertions, 0 deletions
diff --git a/c++/codec/rpc.h b/c++/codec/rpc.h new file mode 100644 index 0000000..8e14292 --- /dev/null +++ b/c++/codec/rpc.h @@ -0,0 +1,24 @@ +#pragma once + +namespace saw { +template<typename T> +class remote { + static_assert(always_false<T>, "Type of remote host not supported"); +}; + +class rpc_client { + template<typename... T> + struct request { + private: + std::tuple<id<T>> ids_; + public: + error_or<data<T>> wait(); + }; + + template<typename... T> + request<T...> request_data(id<T>... data); +}; + +class rpc_server { +}; +} diff --git a/c++/io_codec/rpc.h b/c++/io_codec/rpc.h new file mode 100644 index 0000000..06a5f76 --- /dev/null +++ b/c++/io_codec/rpc.h @@ -0,0 +1,17 @@ +#pragma once + +namespace saw { +namespace rmt { +struct Network {}; +} + +template<> +class remote<rmt::Network> { +private: + std::string addr_str_; +public: + remote(std::string addr_str); + + conveyor<rpc_client<rmt::Network>> create_client(); +}; +} |