diff options
Diffstat (limited to 'modules/remote-hip/c++/remote.hpp')
-rw-r--r-- | modules/remote-hip/c++/remote.hpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/modules/remote-hip/c++/remote.hpp b/modules/remote-hip/c++/remote.hpp index 7263aaf..b814ff2 100644 --- a/modules/remote-hip/c++/remote.hpp +++ b/modules/remote-hip/c++/remote.hpp @@ -1,6 +1,7 @@ #pragma once #include "common.hpp" +#include "device.hpp" namespace saw { @@ -104,7 +105,12 @@ public: */ template<typename Schema, typename Encoding> error_or<own<data_server<Schema, Encoding, rmt::Hip>>> data_listen(remote_address<rmt::Hip>& dev){ - return heap<data_server<Schema, Encoding, rmt::Hip>>(dev); + our<device<rmt::Hip>> dev = nullptr; + auto ins = devs_.emplace(std::make_pair(dev.get_device_id(), our<device<rmt::Hip>>{nullptr})); + if(ins.second){ + ins.first->second = share<device<rmt::Hip>>(); + } + return heap<data_server<Schema, Encoding, rmt::Hip>>(ins.first->second); } /** |