diff --git a/bytes_ostream.hh b/bytes_ostream.hh index 8c8c40cbe0bd..59fe51f0c1bb 100644 --- a/bytes_ostream.hh +++ b/bytes_ostream.hh @@ -174,7 +174,7 @@ public: value_type* ptr; // makes the place_holder looks like a stream seastar::simple_output_stream get_stream() { - return seastar::simple_output_stream{reinterpret_cast(ptr)}; + return seastar::simple_output_stream(reinterpret_cast(ptr), sizeof(T)); } }; diff --git a/db/commitlog/commitlog_entry.cc b/db/commitlog/commitlog_entry.cc index 4cd68a95f4cd..6f06727b65c1 100644 --- a/db/commitlog/commitlog_entry.cc +++ b/db/commitlog/commitlog_entry.cc @@ -73,7 +73,7 @@ void commitlog_entry_writer::compute_size() { } void commitlog_entry_writer::write(data_output& out) const { - seastar::simple_output_stream str(out.reserve(size())); + seastar::simple_output_stream str(out.reserve(size()), size()); ser::serialize(str, get_entry()); } diff --git a/seastar b/seastar index 2b55789c289e..5b7252d7848b 160000 --- a/seastar +++ b/seastar @@ -1 +1 @@ -Subproject commit 2b55789c289ed02720292b260f41072f56397ddc +Subproject commit 5b7252d7848ba406fd07f990809184e1dbb6982f diff --git a/serializer.hh b/serializer.hh index e1e776adde12..0af62e31d278 100644 --- a/serializer.hh +++ b/serializer.hh @@ -101,14 +101,11 @@ inline void skip(Input& v, boost::type) { template size_type get_sizeof(const T& obj); -template -void set_size(seastar::simple_output_stream& os, const T& obj); - template void set_size(seastar::measuring_output_stream& os, const T& obj); -template -void set_size(bytes_ostream& os, const T& obj); +template +void set_size(Stream& os, const T& obj); template Buffer serialize_to_buffer(const T& v, size_t head_space = 0); diff --git a/serializer_impl.hh b/serializer_impl.hh index c4c79007ced0..fb46b3ffac14 100644 --- a/serializer_impl.hh +++ b/serializer_impl.hh @@ -24,18 +24,13 @@ #include "serializer.hh" namespace ser { -template -void set_size(seastar::simple_output_stream& os, const T& obj) { - serialize(os, get_sizeof(obj)); -} - template void set_size(seastar::measuring_output_stream& os, const T& obj) { serialize(os, uint32_t(0)); } -template -void set_size(bytes_ostream& os, const T& obj) { +template +void set_size(Stream& os, const T& obj) { serialize(os, get_sizeof(obj)); } @@ -260,9 +255,9 @@ struct serializer> { template class deserialized_bytes_proxy { - seastar::memory_stream _stream; + seastar::memory_input_stream _stream; public: - explicit deserialized_bytes_proxy(seastar::memory_stream stream) + explicit deserialized_bytes_proxy(seastar::memory_input_stream stream) : _stream(std::move(stream)) { } [[gnu::always_inline]] @@ -440,7 +435,7 @@ Buffer serialize_to_buffer(const T& v, size_t head_space) { seastar::measuring_output_stream measure; ser::serialize(measure, v); Buffer ret(typename Buffer::initialized_later(), measure.size() + head_space); - seastar::simple_output_stream out(reinterpret_cast(ret.begin()), head_space); + seastar::simple_output_stream out(reinterpret_cast(ret.begin()), ret.size(), head_space); ser::serialize(out, v); return ret; } diff --git a/utils/input_stream.hh b/utils/input_stream.hh index 3e5dd4a1af54..cd55a8c0c114 100644 --- a/utils/input_stream.hh +++ b/utils/input_stream.hh @@ -26,6 +26,6 @@ namespace utils { -using input_stream = seastar::memory_stream; +using input_stream = seastar::memory_input_stream; }