diff options
author | Claudius 'keldu' Holeksa <mail@keldu.de> | 2024-08-21 18:01:16 +0200 |
---|---|---|
committer | Claudius 'keldu' Holeksa <mail@keldu.de> | 2024-08-21 18:01:16 +0200 |
commit | 4fdfa202eef2419a9f043cd45a3075d6b5e3063f (patch) | |
tree | cc58d4804e81b680ce4ac3c9a47dc902893c0232 | |
parent | 227f9d945d2b99bb33b71442ec229a13d1d29561 (diff) |
Pulling out Storage template
-rw-r--r-- | modules/codec-netcdf/c++/netcdf.hpp | 10 | ||||
-rw-r--r-- | modules/codec/c++/data.hpp | 2 | ||||
-rw-r--r-- | modules/remote-sycl/c++/rpc.hpp | 4 | ||||
-rw-r--r-- | modules/remote-sycl/c++/transfer.hpp | 24 | ||||
-rw-r--r-- | modules/remote/c++/remote.hpp | 26 | ||||
-rw-r--r-- | modules/remote/c++/remote_loopback.hpp | 20 | ||||
-rw-r--r-- | modules/remote/c++/remote_loopback_base.hpp | 8 |
7 files changed, 47 insertions, 47 deletions
diff --git a/modules/codec-netcdf/c++/netcdf.hpp b/modules/codec-netcdf/c++/netcdf.hpp index e89928d..f93eceb 100644 --- a/modules/codec-netcdf/c++/netcdf.hpp +++ b/modules/codec-netcdf/c++/netcdf.hpp @@ -19,7 +19,7 @@ struct Netcdf {}; * Class representing the files system netcdf file */ template<typename Schema> -class data<Schema, encode::Netcdf, storage::Default> { +class data<Schema, encode::Netcdf> { private: std::vector<uint8_t> buff_; public: @@ -44,7 +44,7 @@ public: }; template<typename Schema> -class codec<Schema, encode::Netcdf,storage::Default>{ +class codec<Schema, encode::Netcdf>{ static_assert(always_false<Schema,encode::Netcdf>, "NetCDF only supports Structs as a root object"); }; @@ -53,7 +53,7 @@ class codec<Schema, encode::Netcdf,storage::Default>{ namespace saw { template<typename... Vals, string_literal... Keys> -class codec<schema::Struct<schema::Member<Vals,Keys>...>, encode::Netcdf, storage::Default> { +class codec<schema::Struct<schema::Member<Vals,Keys>...>, encode::Netcdf> { private: using Schema = schema::Struct<schema::Member<Vals,Keys>...>; public: @@ -69,7 +69,7 @@ public: * Encoder function */ template<typename FromEncoding> - error_or<void> encode(const data<Schema, FromEncoding, storage::Default>& from, data<Schema,encode::Netcdf, storage::Default>& to) { + error_or<void> encode(const data<Schema, FromEncoding>& from, data<Schema,encode::Netcdf>& to) { int rc{}; int ncid{}; @@ -131,7 +131,7 @@ public: * Decoder function */ template<typename ToEncoding> - error_or<void> decode(data<Schema, encode::Netcdf, storage::Default>& from_decode, data<Schema,ToEncoding,storage::Default>& to_decode) { + error_or<void> decode(data<Schema, encode::Netcdf>& from_decode, data<Schema,ToEncoding>& to_decode) { int ncid{}; int rc{}; diff --git a/modules/codec/c++/data.hpp b/modules/codec/c++/data.hpp index 11d94e6..77edf8e 100644 --- a/modules/codec/c++/data.hpp +++ b/modules/codec/c++/data.hpp @@ -27,7 +27,7 @@ struct Native { }; } -template<typename Schema, typename Encode, typename Storage = storage::Default> +template<typename Schema, typename Encode> class codec; /* * Helper for the basic message container, so the class doesn't have to be diff --git a/modules/remote-sycl/c++/rpc.hpp b/modules/remote-sycl/c++/rpc.hpp index 65e2df5..da2eeaa 100644 --- a/modules/remote-sycl/c++/rpc.hpp +++ b/modules/remote-sycl/c++/rpc.hpp @@ -10,8 +10,8 @@ namespace saw { /** * Remote data class for the Sycl backend. */ -template<typename T, typename Encoding, typename Storage> -class remote_data<T, Encoding, Storage, rmt::Sycl> final { +template<typename T, typename Encoding> +class remote_data<T, Encoding, rmt::Sycl> final { private: /** * An identifier to the data being held on the remote diff --git a/modules/remote-sycl/c++/transfer.hpp b/modules/remote-sycl/c++/transfer.hpp index a7f1b53..e39165b 100644 --- a/modules/remote-sycl/c++/transfer.hpp +++ b/modules/remote-sycl/c++/transfer.hpp @@ -88,9 +88,9 @@ public: * Get data which we will store. */ template<typename Sch> - error_or<void> send(const data<Sch, Encoding, storage::Default>& dat, id<Sch> store_id){ + error_or<void> send(const data<Sch, Encoding>& dat, id<Sch> store_id){ auto& vals = std::get<std::unordered_map<uint64_t, data<Sch,Encoding,rmt::Sycl>>>(values_); - auto eoval = device_->template copy_to_device<Sch, Encoding, storage::Default>(dat); + auto eoval = device_->template copy_to_device<Sch, Encoding>(dat); if(eoval.is_error()){ auto& err = eoval.get_error(); return std::move(err); @@ -108,9 +108,9 @@ public: } template<typename Sch> - error_or<void> allocate(const data<typename meta_schema<Sch>::MetaSchema, Encoding, storage::Default>& dat, id<Sch> store_id){ - auto& vals = std::get<std::unordered_map<uint64_t, data<Sch,Encoding,rmt::Sycl>>>(values_); - auto eoval = device_->template allocate_on_device<Sch, Encoding, storage::Default>(dat); + error_or<void> allocate(const data<typename meta_schema<Sch>::MetaSchema, Encoding>& dat, id<Sch> store_id){ + auto& vals = std::get<std::unordered_map<uint64_t, data<Sch,encode::Sycl<Encoding>>>>(values_); + auto eoval = device_->template allocate_on_device<Sch, Encoding>(dat); if(eoval.is_error()){ auto& err = eoval.get_error(); return std::move(err); @@ -132,14 +132,14 @@ public: */ template<typename Sch> error_or<data<Sch, Encoding, storage::Default>> receive(id<Sch> store_id){ - auto& vals = std::get<std::unordered_map<uint64_t, data<Sch,Encoding,rmt::Sycl>>>(values_); + auto& vals = std::get<std::unordered_map<uint64_t, data<Sch,encode::Sycl<Encoding>>>>(values_); auto find_res = vals.find(store_id.get_value()); if(find_res == vals.end()){ return make_error<err::not_found>(); } auto& dat = find_res->second; - auto eoval = device_->template copy_to_host<Sch, Encoding, storage::Default>(dat); + auto eoval = device_->template copy_to_host<Sch, Encoding>(dat); return eoval; } @@ -148,7 +148,7 @@ public: */ template<typename Sch> error_or<void> erase(id<Sch> store_id){ - auto& vals = std::get<std::unordered_map<uint64_t, data<Sch,Encoding,rmt::Sycl>>>(values_); + auto& vals = std::get<std::unordered_map<uint64_t, data<Sch,Encoding>>>(values_); auto erase_op = vals.erase(store_id.get_value()); if(erase_op == 0u){ return make_error<err::not_found>(); @@ -161,8 +161,8 @@ public: * Insert operations may invalidate the pointer. */ template<typename Sch> - error_or<data<Sch, Encoding, rmt::Sycl>*> find(id<Sch> store_id){ - auto& vals = std::get<std::unordered_map<uint64_t, data<Sch,Encoding,rmt::Sycl>>>(values_); + error_or<data<Sch, encode::Sycl<Encoding>>*> find(id<Sch> store_id){ + auto& vals = std::get<std::unordered_map<uint64_t, data<Sch,Encoding>>>(values_); auto find_res = vals.find(store_id.get_value()); if(find_res == vals.end()){ return make_error<err::not_found>(); @@ -200,7 +200,7 @@ public: * Send data to the remote. */ template<typename Sch> - error_or<id<Sch>> send(const data<Sch, Encoding, storage::Default>& dat){ + error_or<id<Sch>> send(const data<Sch, Encoding>& dat){ id<Sch> dat_id{next_id_}; auto eov = srv_->send(dat, dat_id); if(eov.is_error()){ @@ -216,7 +216,7 @@ public: * Receive data */ template<typename Sch> - conveyor<data<Sch, Encoding, storage::Default>> receive(id<Sch> dat_id){ + conveyor<data<Sch, Encoding>> receive(id<Sch> dat_id){ auto eov = srv_->receive(dat_id); if(eov.is_error()){ auto& err = eov.get_error(); diff --git a/modules/remote/c++/remote.hpp b/modules/remote/c++/remote.hpp index 571a4e7..807213e 100644 --- a/modules/remote/c++/remote.hpp +++ b/modules/remote/c++/remote.hpp @@ -14,13 +14,13 @@ namespace saw { /** * This class acts as a helper for rpc calls and representing data on the remote. */ -template<typename T, typename Encoding, typename Storage> +template<typename T, typename Encoding> class data_or_id { private: /** * Variant representing the either id or data class. */ - std::variant<id<T>, data<T,Encoding, Storage>> doi_; + std::variant<id<T>, data<T,Encoding>> doi_; public: /** * Constructor for instantiating. @@ -32,7 +32,7 @@ public: /** * Constructor for instantiating. */ - data_or_id(data<T,Encoding, Storage> val): + data_or_id(data<T,Encoding> val): doi_{std::move(val)} {} @@ -47,7 +47,7 @@ public: * Check if this class holds data. */ bool is_data() const { - return std::holds_alternative<data<T,Encoding,Storage>>(doi_); + return std::holds_alternative<data<T,Encoding>>(doi_); } /** @@ -60,15 +60,15 @@ public: /** * Return a data reference. */ - data<T,Encoding, Storage>& get_data(){ - return std::get<data<T,Encoding, Storage>>(doi_); + data<T,Encoding>& get_data(){ + return std::get<data<T,Encoding>>(doi_); } /** * Return a data reference. */ - const data<T,Encoding,Storage>& get_data() const { - return std::get<data<T,Encoding,Storage>>(doi_); + const data<T,Encoding>& get_data() const { + return std::get<data<T,Encoding>>(doi_); } }; @@ -76,21 +76,21 @@ public: /** * Representing data on the remote */ -template<typename T, typename Encoding, typename Storage, typename Remote> +template<typename T, typename Encoding, typename Remote> class remote_data; -template<typename Iface, typename Encoding, typename Storage, typename Remote> +template<typename Iface, typename Encoding, typename Remote> class rpc_client; /** * Implementation of a remote server on the backend */ -template<typename Iface, typename Encoding, typename Storage, typename Remote> +template<typename Iface, typename Encoding, typename Remote> class rpc_server { private: - interface<Iface, Encoding, Storage> iface_; + interface<Iface, Encoding> iface_; public: - rpc_server(interface<Iface, Encoding, Storage> iface): + rpc_server(interface<Iface, Encoding> iface): iface_{std::move(iface)} {} }; diff --git a/modules/remote/c++/remote_loopback.hpp b/modules/remote/c++/remote_loopback.hpp index fde410d..308bdc6 100644 --- a/modules/remote/c++/remote_loopback.hpp +++ b/modules/remote/c++/remote_loopback.hpp @@ -9,8 +9,8 @@ namespace saw { -template<typename T, typename Encoding, typename Storage> -class remote_data<T, Encoding, Storage, rmt::Loopback> { +template<typename T, typename Encoding> +class remote_data<T, Encoding, rmt::Loopback> { private: id<T> id_; public: @@ -21,24 +21,24 @@ public: /** * Wait until data arrives */ - error_or<data<T, Encoding, Storage>> wait(wait_scope& wait); + error_or<data<T, Encoding>> wait(wait_scope& wait); /** * Asynchronously wait for a result */ - conveyor<data<T, Encoding, Storage>> on_receive(); + conveyor<data<T, Encoding>> on_receive(); }; /** * Client RPC reference structure */ -template<typename Iface, typename Encoding, typename Storage> -class rpc_client<Iface, Encoding, Storage, rmt::Loopback> { +template<typename Iface, typename Encoding> +class rpc_client<Iface, Encoding, rmt::Loopback> { /** * request the data from the remote */ template<typename IdT> - remote_data<IdT, Encoding, Storage, rmt::Loopback> request_data(id<IdT> data); + remote_data<IdT, Encoding, rmt::Loopback> request_data(id<IdT> data); /** @todo * Determine type based on Name @@ -54,10 +54,10 @@ class rpc_client<Iface, Encoding, Storage, rmt::Loopback> { }; -template<typename Iface, typename Encode, typename Storage> -class rpc_server<Iface, Encode, Storage, rmt::Loopback> { +template<typename Iface, typename Encode> +class rpc_server<Iface, Encode, rmt::Loopback> { public: - using InterfaceT = interface<Iface, Encode, Storage>; + using InterfaceT = interface<Iface, Encode>; private: const remote_address<rmt::Loopback>* addr_; InterfaceT iface_; diff --git a/modules/remote/c++/remote_loopback_base.hpp b/modules/remote/c++/remote_loopback_base.hpp index 87d4393..b53ae49 100644 --- a/modules/remote/c++/remote_loopback_base.hpp +++ b/modules/remote/c++/remote_loopback_base.hpp @@ -61,14 +61,14 @@ public: /** * Connect to a remote */ - template<typename Iface, typename Encode, typename Storage> - conveyor<rpc_client<Iface, Encode, Storage, rmt::Loopback>> connect(const remote_address<rmt::Loopback>& addr); + template<typename Iface, typename Encode> + conveyor<rpc_client<Iface, Encode, rmt::Loopback>> connect(const remote_address<rmt::Loopback>& addr); /** * Start listening */ - template<typename Iface, typename Encode, typename Storage> - rpc_server<Iface, Encode, Storage, rmt::Loopback> listen(const remote_address<rmt::Loopback>& addr, typename rpc_server<Iface,Encode,Storage,rmt::Loopback>::InterfaceT iface){ + template<typename Iface, typename Encode> + rpc_server<Iface, Encode, rmt::Loopback> listen(const remote_address<rmt::Loopback>& addr, typename rpc_server<Iface,Encode,rmt::Loopback>::InterfaceT iface){ return {addr, std::move(iface)}; } |