summaryrefslogtreecommitdiff
path: root/modules/io_codec/c++/io_peer.tmpl.hpp
diff options
context:
space:
mode:
authorClaudius 'keldu' Holeksa <mail@keldu.de>2024-08-07 13:26:58 +0200
committerClaudius 'keldu' Holeksa <mail@keldu.de>2024-08-07 13:26:58 +0200
commite4525015f88bcb7d9906a875210f759621f2b3c3 (patch)
treef0105983f8afdc0bfd257ac8e8e9246cb87f4112 /modules/io_codec/c++/io_peer.tmpl.hpp
parent3beda6ac36f494df11851b657a4bcc967bceb79d (diff)
wip
Diffstat (limited to 'modules/io_codec/c++/io_peer.tmpl.hpp')
-rw-r--r--modules/io_codec/c++/io_peer.tmpl.hpp15
1 files changed, 11 insertions, 4 deletions
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(),