summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--modules/remote/c++/transfer_loopback.hpp43
-rw-r--r--modules/remote/tests/remote_loopback.cpp92
2 files changed, 6 insertions, 129 deletions
diff --git a/modules/remote/c++/transfer_loopback.hpp b/modules/remote/c++/transfer_loopback.hpp
index 1a06287..afc9d17 100644
--- a/modules/remote/c++/transfer_loopback.hpp
+++ b/modules/remote/c++/transfer_loopback.hpp
@@ -98,13 +98,13 @@ public:
return ptr<data<Schema,Encoding>>{dat};
}
};
-
+/*
template<typename... Schema, typename Encoding>
class data_server<tmpl_group<Schema...>, Encoding, rmt::Loopback> final {
private:
ptr<remote<rmt::Loopback>> remote_;
remote_address<rmt::Loopback> rmt_address_;
- std::tuple<data_server<Schema,Encoding,rmt::Loopback>...> values_;
+ std::tuple<own<data_server<Schema,Encoding,rmt::Loopback>>...> values_;
struct inner_register_helper {
template<uint64_t i, typename Func>
@@ -137,7 +137,7 @@ private:
}
};
public:
- data_server(ptr<remote<rmt::Loopback>> remote__, const remote_address<rmt::Loopback>& addr, std::tuple<data_server<Schema,Encoding>...>&& values__):
+ data_server(ptr<remote<rmt::Loopback>> remote__, const remote_address<rmt::Loopback>& addr, std::tuple<own<data_server<Schema,Encoding,rmt::Loopback>>...>&& values__):
remote_{remote__},
rmt_address_{addr},
values_{std::move(values__)}
@@ -151,9 +151,6 @@ public:
SAW_FORBID_COPY(data_server);
SAW_FORBID_MOVE(data_server);
- /**
- * Get data from client
- */
template<typename Sch>
error_or<void> send(const data<Sch, Encoding>& dat, id<Sch> store_id){
auto& vals = std::get<std::unordered_map<uint64_t, data<Sch,Encoding>>>(values_);
@@ -169,9 +166,6 @@ public:
return void_t{};
}
- /**
- *
- */
template<typename Sch>
error_or<void> allocate(data<typename meta_schema<Sch>::MetaSchema, Encoding> meta, id<Sch> store_id){
auto& vals = std::get<std::unordered_map<uint64_t, data<Sch,Encoding>>>(values_);
@@ -221,6 +215,7 @@ public:
return &dat;
}
};
+*/
template<typename Schema, typename Encoding>
class data_client<Schema, Encoding, rmt::Loopback> final {
@@ -300,25 +295,14 @@ public:
}
};
-/**
- * Client for transporting data to remote and receiving data back
- */
+/*
template<typename... Schema, typename Encoding>
class data_client<tmpl_group<Schema...>, Encoding, rmt::Loopback> {
private:
- /**
- * Corresponding server for this client
- */
ptr<data_server<tmpl_group<Schema...>, Encoding, rmt::Loopback>> srv_;
- /**
- * The next id for identifying issues on the remote side.
- */
uint64_t next_id_;
public:
- /**
- * Main constructor
- */
data_client(ptr<data_server<tmpl_group<Schema...>, Encoding, rmt::Loopback>> srv__):
srv_{srv__},
next_id_{0u}
@@ -327,9 +311,6 @@ public:
SAW_FORBID_COPY(data_client);
SAW_DEFAULT_MOVE(data_client);
- /**
- * Send data to the remote.
- */
template<typename Sch>
error_or<id<Sch>> send(const data<Sch, Encoding>& dat){
id<Sch> dat_id{next_id_};
@@ -343,9 +324,6 @@ public:
return dat_id;
}
- /**
- * Preallocate data
- */
template<typename Sch>
error_or<id<Sch>> allocate(const data<typename meta_schema<Sch>::MetaSchema, Encoding>& meta){
id<Sch> dat_id{next_id_};
@@ -358,9 +336,6 @@ public:
return dat_id;
}
- /**
- * Receive data
- */
template<typename Sch>
conveyor<data<Sch, Encoding>> receive(id<Sch> dat_id){
auto eov = srv_().receive(dat_id);
@@ -373,18 +348,11 @@ public:
return std::move(val);
}
- /**
- * Erase data
- */
template<typename Sch>
error_or<void> erase(id<Sch> dat_id){
return srv_().erase(dat_id);
}
- /**
- * An exception for the Loopback backend. Here we can safely use find from
- * the client side.
- */
template<typename Sch>
error_or<data<Sch, Encoding>*> find(id<Sch> dat_id){
auto eov = srv_().find(dat_id);
@@ -397,5 +365,6 @@ public:
return val;
}
};
+*/
}
diff --git a/modules/remote/tests/remote_loopback.cpp b/modules/remote/tests/remote_loopback.cpp
index eca107f..bc04605 100644
--- a/modules/remote/tests/remote_loopback.cpp
+++ b/modules/remote/tests/remote_loopback.cpp
@@ -10,12 +10,6 @@ using TestInterface = Interface<
Member<Function<UInt32, Int64>, "foo">
>;
-using GroupedSchemas = saw::tmpl_group<
- UInt64,
- String,
- Array<Int32>,
- Float64
->;
}
SAW_TEST("Remote Loopback Data"){
@@ -95,90 +89,4 @@ SAW_TEST("Remote Loopback Data"){
}
}
-SAW_TEST("Remote Loopback Grouped Data"){
- using namespace saw;
-
- event_loop loop;
- wait_scope wait{loop};
-
- remote<rmt::Loopback> rmt;
-
- auto eov = rmt.parse_address(0u);
- SAW_EXPECT(eov.is_value(), "Didn't parse correctly");
- auto& addr = eov.get_value();
-
- auto eo_srv = rmt.template data_listen<sch::GroupedSchemas, encode::Native>(*addr);
- SAW_EXPECT(eo_srv.is_value(), std::string{"Couldn't listen: "} + std::string{eo_srv.get_error().get_category()});
- auto& srv = eo_srv.get_value();
-
- auto cvr_client = rmt.template data_connect<sch::GroupedSchemas, encode::Native>(*addr);
- auto eo_client = cvr_client.take();
- SAW_EXPECT(eo_client.is_value(), "Couldn't connect.");
- auto& client = eo_client.get_value();
-
- data<sch::UInt64> foo{421};
- id<sch::UInt64> sent_id = [&](){
- auto eov = client.send(foo);
- SAW_EXPECT(eov.is_value(), "Failed send.");
- return eov.get_value();
- }();
-
- {
- auto conv = client.receive(sent_id);
- auto eov = conv.take();
-
- SAW_EXPECT(eov.is_value(), "Failed receive.");
- SAW_EXPECT(eov.get_value() == foo, "Wrong received value.");
- }
- {
- auto eov = client.find(sent_id);
- SAW_EXPECT(eov.is_value(), "Failed find.");
- auto& f_val = eov.get_value();
- SAW_EXPECT(f_val, "Nullptr in find.");
- SAW_EXPECT(*f_val == foo, "Wrong received value.");
- }
- {
- auto eov = client.erase(sent_id);
- SAW_EXPECT(eov.is_value(), "Failed erase.");
- }
- {
- auto conv = client.receive(sent_id);
- auto eov = conv.take();
- SAW_EXPECT(!eov.is_value(), "Failed receive. Value should already be erased.");
- }
-
- id<sch::UInt64> alloc_id = [&](){
- auto eov = client.allocate<sch::UInt64>(data<sch::Void>{});
- SAW_EXPECT(eov.is_value(), "Failed send.");
- return eov.get_value();
- }();
- {
- auto eov = client.find(alloc_id);
- SAW_EXPECT(eov.is_value(), "Failed find.");
- auto& f_val = eov.get_value();
- SAW_EXPECT(f_val, "Nullptr in find.");
- f_val->set(5u);
- }
- {
- auto conv = client.receive(alloc_id);
- auto eov = conv.take();
- SAW_EXPECT(eov.is_value(), "Failed receive.");
- SAW_EXPECT(eov.get_value().get() == 5u, "Wrong received value.");
- }
-
- data<sch::FixedArray<sch::UInt64,1>> arr_meta{{128u}};
-
- id<sch::Array<sch::Int32>> arr_alloc_id = [&](){
- auto eov = client.allocate<sch::Array<sch::Int32>>(arr_meta);
- SAW_EXPECT(eov.is_value(), "Failed send.");
- return eov.get_value();
- }();
- {
- auto eov = client.find(arr_alloc_id);
- SAW_EXPECT(eov.is_value(), "Failed find.");
- auto& f_val = eov.get_value();
- SAW_EXPECT(f_val, "Nullptr in find.");
- SAW_EXPECT(f_val->size() == arr_meta.at(0).get(), "Wrong initialized size.");
- }
-}
}