blob: e920a101f0dd02bde03384b7554c875d9893f0b3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
#pragma once
namespace saw {
/**
*/
template<typename T, typename Iface>
class rpc_client {
template<typename... IdT>
struct request {
private:
std::tuple<id<IdT>...> ids_;
public:
error_or<data<schema::Tuple<IdT>...>> wait();
};
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();
};
}
|