Provide absl::Span<QuicMemSlice> version of WriteMemSlices()
The goal is to eventually deprecate QuicMemSliceSpan, thus reducing the amount of platform code we need to carry around.
PiperOrigin-RevId: 378444535
diff --git a/quic/core/quic_stream_send_buffer.cc b/quic/core/quic_stream_send_buffer.cc
index 3b1b37b..1e32e54 100644
--- a/quic/core/quic_stream_send_buffer.cc
+++ b/quic/core/quic_stream_send_buffer.cc
@@ -12,6 +12,7 @@
#include "quic/platform/api/quic_flag_utils.h"
#include "quic/platform/api/quic_flags.h"
#include "quic/platform/api/quic_logging.h"
+#include "quic/platform/api/quic_mem_slice.h"
namespace quic {
@@ -96,6 +97,20 @@
[&](QuicMemSlice slice) { SaveMemSlice(std::move(slice)); });
}
+QuicByteCount QuicStreamSendBuffer::SaveMemSliceSpan(
+ absl::Span<QuicMemSlice> span) {
+ QuicByteCount total = 0;
+ for (QuicMemSlice& slice : span) {
+ if (slice.length() == 0) {
+ // Skip empty slices.
+ continue;
+ }
+ total += slice.length();
+ SaveMemSlice(std::move(slice));
+ }
+ return total;
+}
+
void QuicStreamSendBuffer::OnStreamDataConsumed(size_t bytes_consumed) {
stream_bytes_written_ += bytes_consumed;
stream_bytes_outstanding_ += bytes_consumed;