summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to 'modules')
-rw-r--r--modules/remote-sycl/c++/remote.hpp40
1 files changed, 19 insertions, 21 deletions
diff --git a/modules/remote-sycl/c++/remote.hpp b/modules/remote-sycl/c++/remote.hpp
index 1df6249..0d10ba7 100644
--- a/modules/remote-sycl/c++/remote.hpp
+++ b/modules/remote-sycl/c++/remote.hpp
@@ -9,6 +9,9 @@ namespace rmt {
struct Sycl {};
}
+template<>
+class remote<rmt::Sycl>;
+
template<typename Iface, typename Encode>
class rpc_server<Iface, Encode, rmt::Sycl> {
private:
@@ -17,6 +20,20 @@ public:
};
+
+template<>
+struct remote_address<rmt::Sycl> {
+private:
+ remote<rmt::Sycl>* ctx_;
+
+ SAW_FORBID_COPY(remote_address);
+ SAW_FORBID_MOVE(remote_address);
+public:
+ remote_address(remote<rmt::Sycl>& r_ctx):
+ ctx_{&r_ctx}
+ {}
+};
+
template<>
class remote<rmt::Sycl> {
private:
@@ -33,8 +50,8 @@ public:
* For now we don't need to specify the location since
* we just create a default.
*/
- conveyor<remote_address<rmt::Sycl>> resolve_address(){
- return remote_address<rmt::Sycl>{*this};
+ conveyor<own<remote_address<rmt::Sycl>>> resolve_address(){
+ return heap<remote_address<rmt::Sycl>>(*this);
}
/**
@@ -46,23 +63,4 @@ public:
}
};
-template<>
-struct remote_address<rmt::Sycl> {
-private:
- remote<rmt::Sycl>* ctx_;
-
- SAW_FORBID_COPY(remote_address);
- SAW_FORBID_MOVE(remote_address);
-public:
- remote_address(remote<rmt::Sycl>& r_ctx):
- ctx_{&r_ctx}
- {}
-
- /*
- template<typename Iface>
- error_or<void> foo();
- */
-
-
-};
}