From 03ed2a0fe01704f9c34b44e0963da82f894d8968 Mon Sep 17 00:00:00 2001 From: Claudius 'keldu' Holeksa Date: Wed, 7 Aug 2024 17:37:47 +0200 Subject: wip --- modules/codec/c++/transport.hpp | 15 +++++++++++++-- modules/io_codec/c++/io_peer.tmpl.hpp | 12 +++++++++++- modules/io_codec/examples/echo.hpp | 2 +- modules/io_codec/examples/peer_echo_client.cpp | 23 ++++++++--------------- 4 files changed, 33 insertions(+), 19 deletions(-) diff --git a/modules/codec/c++/transport.hpp b/modules/codec/c++/transport.hpp index 6116497..1dbe038 100644 --- a/modules/codec/c++/transport.hpp +++ b/modules/codec/c++/transport.hpp @@ -40,11 +40,22 @@ public: return data_view; } - error_or chain_slice(chain_array_buffer& buff) const { - (void) buff; + error_or wrap(buffer& out_buff, buffer& in_buff){ + using trans_type = typename native_data_type>::type; + trans_type val{}; + val = static_cast(in_buff.read_composite_length()); + auto eov = stream_value>::encode(val, out_buff); + if(eov.is_error()){ + auto& err = eov.get_error(); + return std::move(err); + } + return Len; + } + error_or chain_slice(chain_array_buffer& buff) const { + (void) buff; return make_error(); } }; diff --git a/modules/io_codec/c++/io_peer.tmpl.hpp b/modules/io_codec/c++/io_peer.tmpl.hpp index 4deabd3..faf8c7b 100644 --- a/modules/io_codec/c++/io_peer.tmpl.hpp +++ b/modules/io_codec/c++/io_peer.tmpl.hpp @@ -91,7 +91,17 @@ error_or streaming_io_peer nat_echo{"hello"}; - data simple_echo; codec simple_codec; - { - auto eov = simple_codec.encode(nat_echo, simple_echo); - if(eov.is_error()){ - return -1; - } - } - network.connect(*addr).then([&](saw::own client){ if(!client){ return; @@ -54,6 +46,14 @@ int main(){ auto echo_peer_stream_p = saw::new_streaming_io_peer, encode::KelSimple, ring_buffer>(std::move(echo_stream)); std::cout<<"Connected"< simple_echo; + { + auto eov = simple_codec.encode(nat_echo, simple_echo); + if(eov.is_error()){ + return ; + } + } { auto eo_send = echo_peer_stream_p.first->send(std::move(simple_echo)); if(eo_send.is_error()){ @@ -61,13 +61,6 @@ int main(){ } } std::cout<<"Sent data"< nat_resp; echo_peer_stream_p.second.then([&](auto simp_resp){ -- cgit v1.2.3