From b3e0558f424f2571bd25909fb930dc0d987a7e37 Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Tue, 2 Jan 2018 16:03:30 +0800 Subject: [PATCH] msg: SocketConnection use consumption_result_type Signed-off-by: Kefu Chai --- src/crimson/net/SocketConnection.cc | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/crimson/net/SocketConnection.cc b/src/crimson/net/SocketConnection.cc index 3fc03cb0e1b9f..87905114b3fac 100644 --- a/src/crimson/net/SocketConnection.cc +++ b/src/crimson/net/SocketConnection.cc @@ -56,20 +56,23 @@ struct bufferlist_consumer { : bl(bl), remaining(remaining) {} using tmp_buf = seastar::temporary_buffer; - using unconsumed_remainder = std::experimental::optional; + using consumption_result_type = typename seastar::input_stream::consumption_result_type; // consume some or all of a buffer segment - seastar::future operator()(tmp_buf&& data) { + seastar::future operator()(tmp_buf&& data) { if (remaining >= data.size()) { // consume the whole buffer remaining -= data.size(); bl.append(buffer::create_foreign(std::move(data))); if (remaining > 0) { // return none to request more segments - return seastar::make_ready_future(); + return seastar::make_ready_future( + seastar::continue_consuming{}); + } else { + // return an empty buffer to singal that we're done + return seastar::make_ready_future( + consumption_result_type::stop_consuming_type({})); } - // return an empty buffer to singal that we're done - return seastar::make_ready_future(tmp_buf{}); } if (remaining > 0) { // consume the front @@ -78,7 +81,8 @@ struct bufferlist_consumer { remaining = 0; } // give the rest back to signal that we're done - return seastar::make_ready_future(std::move(data)); + return seastar::make_ready_future( + consumption_result_type::stop_consuming_type{std::move(data)}); }; }; -- 2.39.5