#pragma once #include #include namespace saw { namespace rmt { struct Sycl {}; } template<> class remote; template class rpc_server { private: cl::sycl::queue cmd_queue_; public: }; template<> struct remote_address { private: remote* ctx_; SAW_FORBID_COPY(remote_address); SAW_FORBID_MOVE(remote_address); public: remote_address(remote& r_ctx): ctx_{&r_ctx} {} }; template<> class remote { private: SAW_FORBID_COPY(remote); SAW_FORBID_MOVE(remote); public: /** * Default constructor */ remote(){} /** * For now we don't need to specify the location since * we just create a default. */ conveyor>> resolve_address(){ return heap>(*this); } /** * Spin up a rpc server */ template conveyor> listen(const remote_address&){ } }; }