From 991a5cbfea6b4ae6551a17e3e8ec375aec1a2a62 Mon Sep 17 00:00:00 2001 From: Claudius 'keldu' Holeksa Date: Wed, 14 Aug 2024 10:38:42 +0200 Subject: Fixed assignement in data server creation --- modules/remote-filesystem/c++/remote.hpp | 12 ++++++- modules/remote-filesystem/c++/transfer.hpp | 49 +++++++++++++++++++++++++++ modules/remote-filesystem/c++/transport.hpp | 51 ----------------------------- 3 files changed, 60 insertions(+), 52 deletions(-) create mode 100644 modules/remote-filesystem/c++/transfer.hpp delete mode 100644 modules/remote-filesystem/c++/transport.hpp (limited to 'modules/remote-filesystem/c++') diff --git a/modules/remote-filesystem/c++/remote.hpp b/modules/remote-filesystem/c++/remote.hpp index 8390501..0225bc5 100644 --- a/modules/remote-filesystem/c++/remote.hpp +++ b/modules/remote-filesystem/c++/remote.hpp @@ -2,6 +2,7 @@ #include +#include #include namespace saw { @@ -35,6 +36,8 @@ private: std::map>> registered_data_servers_; public: + remote() = default; + error_or>> parse_address(const std::string_view& path_v){ return heap>(path_v); } @@ -47,8 +50,15 @@ public: } auto dat_srv = heap>(*this, addr); - insert_res.first->second = {dat_srv}; + insert_res.first->second = ptr>{*dat_srv}; return dat_srv; } + + /** + * Internal deregister function + */ + error_or deregister_data_server(ptr> srv){ + return make_error(); + } }; } diff --git a/modules/remote-filesystem/c++/transfer.hpp b/modules/remote-filesystem/c++/transfer.hpp new file mode 100644 index 0000000..e3df023 --- /dev/null +++ b/modules/remote-filesystem/c++/transfer.hpp @@ -0,0 +1,49 @@ +#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(); + } + +}; +} diff --git a/modules/remote-filesystem/c++/transport.hpp b/modules/remote-filesystem/c++/transport.hpp deleted file mode 100644 index 0db4600..0000000 --- a/modules/remote-filesystem/c++/transport.hpp +++ /dev/null @@ -1,51 +0,0 @@ -#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){ - try { - } - 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(); - } - -}; -} -- cgit v1.2.3