diff options
author | Claudius 'keldu' Holeksa <mail@keldu.de> | 2024-07-29 14:53:48 +0200 |
---|---|---|
committer | Claudius 'keldu' Holeksa <mail@keldu.de> | 2024-07-29 14:53:48 +0200 |
commit | 44f6a2ec37e35cf96419885be27afeab9ea84ec5 (patch) | |
tree | cbdd97513095ece2c1f23433b8e15196b147e7cc /modules/remote/c++/transfer_loopback.hpp | |
parent | 773fffb0c3596c93ae1522f6ef5eaaed4ad54e14 (diff) |
wip
Diffstat (limited to 'modules/remote/c++/transfer_loopback.hpp')
-rw-r--r-- | modules/remote/c++/transfer_loopback.hpp | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/modules/remote/c++/transfer_loopback.hpp b/modules/remote/c++/transfer_loopback.hpp index 2e01509..d205776 100644 --- a/modules/remote/c++/transfer_loopback.hpp +++ b/modules/remote/c++/transfer_loopback.hpp @@ -9,25 +9,38 @@ namespace rmt { struct Loopback {}; } +template<> +class remote<rmt::Loopback>; + template<typename... Schema, typename Encoding> -class data_server<tmpl_group<Schema...>, Encoding, rmt::Loopback> { +class data_server<tmpl_group<Schema...>, Encoding, rmt::Loopback> final : public i_data_server<rmt::Loopback> { private: typename impl::data_server_redux<Encoding, storage::Default, typename tmpl_reduce<tmpl_group<Schema...>>::type>::type values_; ptr<remote<rmt::Loopback>> remote_; public: data_server(remote_address<rmt::Loopback>& addr){ - remote->register_server(addr); + remote_().register_server(addr); } ~data_server(){ - remote->deregister_server(addr); + remote_().deregister_server(addr); } SAW_FORBID_COPY(data_server); SAW_FORBID_MOVE(data_server); /** + * Return the schema id + */ + std::pair<uint32_t,uint32_t> get_class_id() const override { + uint32_t schema_hash = schema_hash<tmpl_group<Schema...>>::apply(); + uint32_t encode_hash = schema_hash<Encoding>::apply(); + + return std::make_pair(schema_hash, encode_hash); + } + + /** * Get data from client */ template<typename Sch> |