#include #include "../c++/transfer.hpp" #include namespace { namespace sch { using namespace saw::schema; using Foo = Struct< Member, Member >; } SAW_TEST("File Remote"){ using namespace saw; return; remote file_remote; auto eo_addr = file_remote.parse_address("./example_file"); SAW_EOV_EXPECT(eo_addr, "Couldn't parse file"); auto& addr = eo_addr.get_value(); auto eo_dat_srv = file_remote.template data_listen({*addr}); SAW_EOV_EXPECT(eo_dat_srv, "Couldn't setup data server."); auto& dat_srv = eo_dat_srv.get_value(); std::string a = "blafoobla"; int64_t b = 42; { data nat_foo; nat_foo.template get<"a">().set(a); nat_foo.template get<"b">().set(b); data smp_foo; codec smp_cod; auto eov = smp_cod.encode(nat_foo,smp_foo); SAW_EOV_EXPECT(eov, "Failed to encode."); id foo_id{0u}; auto eo_send = dat_srv->send(smp_foo, foo_id); SAW_EOV_EXPECT(eo_send, "Failed to send."); } { id foo_id{0u}; auto eo_recv = dat_srv->receive(foo_id); SAW_EOV_EXPECT(eo_recv, "Failed to receive"); auto& recv = eo_recv.get_value(); data nat_foo; codec smp_cod; auto eov = smp_cod.decode(recv, nat_foo); SAW_EOV_EXPECT(eov, std::string{"Failed to decode. Buffer has size "} + std::to_string(recv.get_buffer().read_composite_length())); SAW_EXPECT(nat_foo.template get<"b">().get() == b, "Wrong value."); } } }