summaryrefslogtreecommitdiff
path: root/modules/io_codec/c++
diff options
context:
space:
mode:
Diffstat (limited to 'modules/io_codec/c++')
-rw-r--r--modules/io_codec/c++/io_peer.hpp1
-rw-r--r--modules/io_codec/c++/io_peer.tmpl.hpp15
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(),