From 93b05dd8aa20f8db0d6b0eb9d1a8d5b1593f3269 Mon Sep 17 00:00:00 2001 From: "Claudius \"keldu\" Holeksa" Date: Mon, 6 May 2024 10:07:42 +0200 Subject: io_codec: Moving io_peer code to newest code changes --- modules/io_codec/c++/io_peer.hpp | 7 ++++--- modules/io_codec/c++/io_peer.tmpl.hpp | 35 +++++++++++++++++++---------------- 2 files changed, 23 insertions(+), 19 deletions(-) (limited to 'modules/io_codec') diff --git a/modules/io_codec/c++/io_peer.hpp b/modules/io_codec/c++/io_peer.hpp index 8ba6ee1..3efb4c0 100644 --- a/modules/io_codec/c++/io_peer.hpp +++ b/modules/io_codec/c++/io_peer.hpp @@ -17,10 +17,10 @@ public: */ streaming_io_peer( own>> feed, - own stream, codec codec, BufferT in, BufferT out); + own stream, codec in_codec, codec out_codec, BufferT in, BufferT out); /** - * Constructor + * Constructor with mostly default assignements */ streaming_io_peer( own>> feed, @@ -74,7 +74,8 @@ private: own io_stream_; - codec codec_; + codec in_codec_; + codec out_codec_; BufferT in_buffer_; BufferT out_buffer_; diff --git a/modules/io_codec/c++/io_peer.tmpl.hpp b/modules/io_codec/c++/io_peer.tmpl.hpp index 342ca42..28bbbfb 100644 --- a/modules/io_codec/c++/io_peer.tmpl.hpp +++ b/modules/io_codec/c++/io_peer.tmpl.hpp @@ -1,23 +1,25 @@ namespace saw { -template -streaming_io_peer +streaming_io_peer:: streaming_io_peer( - own>> feed, + own>> feed, own str) : streaming_io_peer{std::move(feed), std::move(str), {}, {}, {}} {} template -streaming_io_peer:: streaming_io_peer( - own>> feed, - own stream, Codec codec, BufferT in, BufferT out) + own>> feed, + own stream, codec in_codec, codec out_codec, BufferT in, BufferT out) : incoming_feeder_{std::move(feed)}, - io_stream_{std::move(stream)}, codec_{std::move(codec)}, + io_stream_{std::move(stream)}, + in_codec_{std::move(in_codec)}, + out_codec_{std::move(out_codec)}, in_buffer_{std::move(in)}, out_buffer_{std::move(out)}, sink_read_{ io_stream_->read_done() @@ -32,17 +34,18 @@ streaming_io_peer(); - auto builder = root.build(); + buffer_view in_view{in_buffer_}; + auto in_data = data(in_view); + auto nat_data = data{}; - error err = codec_.template decode( - builder, in_buffer_); + error err = in_codec_.template decode( + in_data, nat_data); if (err.is_critical()) { return err; } if (!err.failed()) { - incoming_feeder_->feed(std::move(root)); + incoming_feeder_->feed(std::move(nat_data)); } else { break; } @@ -58,7 +61,7 @@ streaming_io_peerwrite_done() .then([this](size_t bytes) -> error_or { out_buffer_.read_advance(bytes); - if (out_buffer_.readCompositeLength() > 0) { + if (out_buffer_.read_composite_length() > 0) { io_stream_->write( &out_buffer_.read(), out_buffer_.read_segment_length()); @@ -70,9 +73,9 @@ streaming_io_peerread(&in_buffer_.write(), 1, in_buffer_.write_segment_length()); } -template -error_or streaming_io_peer streaming_io_peer::send(heap_message_root msg) { bool restart_write = out_buffer_.read_segment_length() == 0; -- cgit v1.2.3