Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(128)

Unified Diff: net/quic/quic_stream_sequencer.cc

Issue 1408803002: relnote: Measure HOL blocking in QUIC headers stream. Flag protected by quic_measure_headers_hol_bl… (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@uma_for_hol_merge
Patch Set: get rid of git certs leakage Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/quic/quic_stream_sequencer.h ('k') | net/quic/quic_stream_sequencer_test.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/quic/quic_stream_sequencer.cc
diff --git a/net/quic/quic_stream_sequencer.cc b/net/quic/quic_stream_sequencer.cc
index 3989c4f98b8686f87062c49e946c602cb6b02efc..e916b2147dcaaf446163a51442e8a5513a1c2c13 100644
--- a/net/quic/quic_stream_sequencer.cc
+++ b/net/quic/quic_stream_sequencer.cc
@@ -9,8 +9,10 @@
#include <utility>
#include "base/logging.h"
+#include "net/quic/quic_clock.h"
#include "net/quic/quic_frame_list.h"
#include "net/quic/reliable_quic_stream.h"
+#include "net/quic/reliable_quic_stream.h"
using std::min;
using std::numeric_limits;
@@ -18,7 +20,8 @@ using std::string;
namespace net {
-QuicStreamSequencer::QuicStreamSequencer(ReliableQuicStream* quic_stream)
+QuicStreamSequencer::QuicStreamSequencer(ReliableQuicStream* quic_stream,
+ const QuicClock* clock)
: stream_(quic_stream),
num_bytes_consumed_(0),
close_offset_(numeric_limits<QuicStreamOffset>::max()),
@@ -26,7 +29,8 @@ QuicStreamSequencer::QuicStreamSequencer(ReliableQuicStream* quic_stream)
num_bytes_buffered_(0),
num_frames_received_(0),
num_duplicate_frames_received_(0),
- num_early_frames_received_(0) {}
+ num_early_frames_received_(0),
+ clock_(clock) {}
QuicStreamSequencer::~QuicStreamSequencer() {}
@@ -48,8 +52,8 @@ void QuicStreamSequencer::OnStreamFrame(const QuicStreamFrame& frame) {
}
}
size_t bytes_written;
- QuicErrorCode result =
- buffered_frames_.WriteAtOffset(byte_offset, frame.data, &bytes_written);
+ QuicErrorCode result = buffered_frames_.WriteAtOffset(
+ byte_offset, frame.data, clock_->ApproximateNow(), &bytes_written);
if (result == QUIC_INVALID_STREAM_DATA) {
stream_->CloseConnectionWithDetails(
@@ -111,6 +115,12 @@ int QuicStreamSequencer::GetReadableRegions(iovec* iov, size_t iov_len) const {
return buffered_frames_.GetReadableRegions(iov, iov_len);
}
+bool QuicStreamSequencer::GetReadableRegion(iovec* iov,
+ QuicTime* timestamp) const {
+ DCHECK(!blocked_);
+ return buffered_frames_.GetReadableRegion(iov, timestamp);
+}
+
int QuicStreamSequencer::Readv(const struct iovec* iov, size_t iov_len) {
DCHECK(!blocked_);
size_t bytes_read = buffered_frames_.ReadvAndInvalidate(iov, iov_len);
« no previous file with comments | « net/quic/quic_stream_sequencer.h ('k') | net/quic/quic_stream_sequencer_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698