diff options
Diffstat (limited to 'modules/io_codec/c++')
-rw-r--r-- | modules/io_codec/c++/io_peer.hpp | 1 | ||||
-rw-r--r-- | modules/io_codec/c++/io_peer.tmpl.hpp | 15 |
2 files changed, 12 insertions, 4 deletions
diff --git a/modules/io_codec/c++/io_peer.hpp b/modules/io_codec/c++/io_peer.hpp index c4e28a1..b998055 100644 --- a/modules/io_codec/c++/io_peer.hpp +++ b/modules/io_codec/c++/io_peer.hpp @@ -4,6 +4,7 @@ #include <forstio/buffer.hpp> #include <forstio/io/io.hpp> #include <forstio/codec/data.hpp> +#include <forstio/codec/transport.hpp> namespace saw { diff --git a/modules/io_codec/c++/io_peer.tmpl.hpp b/modules/io_codec/c++/io_peer.tmpl.hpp index 7329eb2..d6d6364 100644 --- a/modules/io_codec/c++/io_peer.tmpl.hpp +++ b/modules/io_codec/c++/io_peer.tmpl.hpp @@ -7,7 +7,7 @@ streaming_io_peer<Incoming, Outgoing, TransportEncoding, ContentEncoding, streaming_io_peer( own<conveyor_feeder<data<Incoming, ContentEncoding>>> feed, own<async_io_stream> str) - : streaming_io_peer{std::move(feed), std::move(str), {}, {}, {}, {}} {} + : streaming_io_peer{std::move(feed), std::move(str), {}, {}, {}} {} template <typename Incoming, typename Outgoing, typename TransportEncoding, typename ContentEncoding, typename BufferT> streaming_io_peer<Incoming, Outgoing, TransportEncoding, ContentEncoding, @@ -51,9 +51,9 @@ streaming_io_peer<Incoming, Outgoing, TransportEncoding, ContentEncoding, return std::move(eo_len.get_error()); } auto& len_val = eo_len.get_value(); - in_buffer->write_advance(len_val); + in_buffer_.write_advance(len_val); - data<Incoming, ContentEncoding> in_data{std::move(array_buffer)}; + data<Incoming, ContentEncoding> in_data{std::move(in_buff)}; incoming_feeder_->feed(std::move(in_data)); } @@ -75,7 +75,12 @@ streaming_io_peer<Incoming, Outgoing, TransportEncoding, ContentEncoding, return void_t{}; }) - .sink()} { + .sink() + }, + conveyor_feeder_{ + *this + } +{ io_stream_->read(&in_buffer_.write(), 1, in_buffer_.write_segment_length()); } @@ -86,9 +91,11 @@ error_or<void> streaming_io_peer<Incoming, Outgoing, TransportEncoding, ContentE msg) { bool restart_write = out_buffer_.read_segment_length() == 0; + /* if (eov.is_error()) { return eov; } + */ if (restart_write) { io_stream_->write(&out_buffer_.read(), |