#pragma once #include "remote.hpp" #include namespace saw { template class data_server final : public i_data_server { private: ptr> remote_; remote_address addr_; public: static constexpr std::pair class_id{schema_hash::apply(), schema_hash::apply()}; data_server(ptr> remote__, ref> addr__): remote_{remote__}, addr_{addr__()} {} ~data_server(){ remote_().deregister_data_server(*this); } SAW_FORBID_MOVE(data_server); SAW_FORBID_COPY(data_server); std::pair get_class_id() const override { return class_id; } error_or send(const data& dat, id store_id){ return make_error(); } error_or allocate(data::MetaSchema, Encoding> meta, id store_id){ return make_error(); } error_or erase(id store_id){ return make_error(); } error_or> receive(id store_id){ return make_error(); } }; }