diff options
author | Claudius "keldu" Holeksa <mail@keldu.de> | 2024-07-21 22:24:03 +0200 |
---|---|---|
committer | Claudius "keldu" Holeksa <mail@keldu.de> | 2024-07-21 22:24:03 +0200 |
commit | 498acb5ee9db90aaf01049ae44e098169219398d (patch) | |
tree | a79c5a2cc5bb7aa49cfde2422183644bdbb5cfd5 /modules | |
parent | 6ca91987ec91621577468ebf68fd68fc5433284a (diff) |
wip
Diffstat (limited to 'modules')
-rw-r--r-- | modules/core/c++/buffer.hpp | 2 | ||||
-rw-r--r-- | modules/remote/c++/transfer_loopback.hpp | 13 |
2 files changed, 12 insertions, 3 deletions
diff --git a/modules/core/c++/buffer.hpp b/modules/core/c++/buffer.hpp index 87c54a6..5bbd90b 100644 --- a/modules/core/c++/buffer.hpp +++ b/modules/core/c++/buffer.hpp @@ -203,7 +203,7 @@ public: } auto& arr_front = buffer_.front(); - if(size != arr_front.size()){ + if(size != arr_front.read_composite_length()){ return make_error<err::invalid_state>("Can't extract array buffer. Size doesn't match. Use view and copy."); } diff --git a/modules/remote/c++/transfer_loopback.hpp b/modules/remote/c++/transfer_loopback.hpp index f148281..9f6dddd 100644 --- a/modules/remote/c++/transfer_loopback.hpp +++ b/modules/remote/c++/transfer_loopback.hpp @@ -36,9 +36,18 @@ public: * */ template<typename Sch> - error_or<void> allocate(id<Sch> store_id){ + error_or<void> allocate(data<typename meta_schema<Sch>::type, Encoding> meta, id<Sch> store_id){ + auto& vals = std::get<std::unordered_map<uint64_t, data<Sch,Encoding>>>(values_); - return make_error<err::not_implemented>(); + try { + auto insert_res = vals.emplace(std::make_pair(store_id.get_value(), {std::move(meta)})); + if(!insert_res.second){ + return make_error<err::already_exists>(); + } + }catch(std::exception& ){ + return make_error<err::out_of_memory>(); + } + return make_void(); } template<typename Sch> |