#pragma once #include "common.hpp" #include "device.tmpl.hpp" namespace saw { /** * Represents a remote Sycl device. */ template<> class device final { private: public: device() = default; SAW_FORBID_COPY(device); SAW_FORBID_MOVE(device); template error_or copy_to_device(data& from, data>& to){ auto dev_data = to.get_device_data(); auto eov = impl::hip_copy_to_device::apply(from, dev_data); return eov; } template error_or copy_to_host(data>& from, data& to){ auto dev_data = from.get_device_data(); auto eov = impl::hip_copy_to_host::apply(dev_data,to); return make_error(); } template error_or erase_from_device(data>& dev_dat){ (void) dev_dat; return make_error(); } template error_or allocate_on_device(const typename data::Init& from, data>& to){ (void) from; (void) to; return make_error(); } }; }