summaryrefslogtreecommitdiff
path: root/modules/remote/c++/transfer.hpp
blob: ea61d560b8a97afcfb852885b58c34b82f9a5216 (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
#pragma once

namespace saw {
template<typename Remote>
class i_data_server {
protected:
	virtual ~i_data_server() = default;
};

template<typename Schema, typename Encoding, typename Remote>
class data_server;

template<typename Schema, typename Encoding, typename Remote>
class data_client;

namespace impl {
template<typename Encoding, typename Storage, typename T>
struct data_server_redux {
	using type = std::tuple<>;
};

template<typename Encoding, typename Storage, typename... Schema>
struct data_server_redux<Encoding, Storage, tmpl_group<Schema...>> {
	using type = std::tuple<std::unordered_map<uint64_t, data<Schema, Encoding, Storage>>...>;
};
}
}