diff options
Diffstat (limited to 'modules/remote-sycl/c++/remote.hpp')
-rw-r--r-- | modules/remote-sycl/c++/remote.hpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/modules/remote-sycl/c++/remote.hpp b/modules/remote-sycl/c++/remote.hpp index 1ae3103..7e77ec9 100644 --- a/modules/remote-sycl/c++/remote.hpp +++ b/modules/remote-sycl/c++/remote.hpp @@ -170,10 +170,11 @@ private: */ device<rmt::Sycl>* device_; + using DataServerT = data_server<typename impl::rpc_iface_type_helper<Iface>::type, Encoding, rmt::Sycl>; /** * Data server storing the relevant data */ - data_server<typename impl::rpc_iface_type_helper<Iface>::type, Encoding, rmt::Sycl> data_server_; + DataServerT* data_server_; /** * The interface including the relevant context class. @@ -185,9 +186,9 @@ public: /** * Main constructor */ - rpc_server(device<rmt::Sycl>& dev__, InterfaceT cl_iface): + rpc_server(device<rmt::Sycl>& dev__, DataServerT& data_server__, InterfaceT cl_iface): device_{&dev__}, - data_server_{}, + data_server_{&data_server__}, cl_interface_{std::move(cl_iface)} {} @@ -230,7 +231,7 @@ public: auto eoinp = [&,this]() -> error_or<data<typename FuncT::RequestT, Encoding, rmt::Sycl>* > { if(input.is_id()){ // storage_.maps - auto eov = data_server_.template find<typename FuncT::RequestT>(input.get_id()); + auto eov = data_server_->template find<typename FuncT::RequestT>(input.get_id()); if(eov.is_error()){ return std::move(eov.get_error()); } @@ -264,7 +265,7 @@ public: /** * Store returned data in rpc storage */ - auto eoid = data_server_.template insert<typename schema_member_type<Name, Iface>::type::RequestT>(std::move(val), rpc_id); + auto eoid = data_server_->template insert<typename schema_member_type<Name, Iface>::type::RequestT>(std::move(val), rpc_id); if(eoid.is_error()){ return std::move(eoid.get_error()); } |