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

Unified Diff: net/quic/quic_protocol.cc

Issue 1330973002: relnote: Refactor QuicAckFrame::missing_packets to support a change to a (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@Tidy_up_DLOG_messages_101773586
Patch Set: Created 5 years, 3 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
Index: net/quic/quic_protocol.cc
diff --git a/net/quic/quic_protocol.cc b/net/quic/quic_protocol.cc
index 404c72b6bd936c7fe1759c9db266bb3620502c46..a7b5ba6ac7bc125881ac7c975b85ff7683762287 100644
--- a/net/quic/quic_protocol.cc
+++ b/net/quic/quic_protocol.cc
@@ -210,15 +210,7 @@ ostream& operator<<(ostream& os, const QuicPacketHeader& header) {
bool IsAwaitingPacket(const QuicAckFrame& ack_frame,
QuicPacketNumber packet_number) {
return packet_number > ack_frame.largest_observed ||
- ContainsKey(ack_frame.missing_packets, packet_number);
-}
-
-void InsertMissingPacketsBetween(QuicAckFrame* ack_frame,
- QuicPacketNumber lower,
- QuicPacketNumber higher) {
- for (QuicPacketNumber i = lower; i < higher; ++i) {
- ack_frame->missing_packets.insert(i);
- }
+ ack_frame.missing_packets.Contains(packet_number);
}
QuicStopWaitingFrame::QuicStopWaitingFrame()
@@ -322,17 +314,86 @@ ostream& operator<<(ostream& os, const QuicStopWaitingFrame& sent_info) {
return os;
}
+PacketNumberQueue::PacketNumberQueue() {}
+
+PacketNumberQueue::~PacketNumberQueue() {}
+
+void PacketNumberQueue::Add(QuicPacketNumber packet_number) {
+ packet_numbers_.insert(packet_number);
+}
+
+void PacketNumberQueue::Add(QuicPacketNumber lower, QuicPacketNumber higher) {
+ for (QuicPacketNumber packet_number = lower; packet_number < higher;
+ ++packet_number) {
+ Add(packet_number);
+ }
+}
+
+void PacketNumberQueue::Remove(QuicPacketNumber packet_number) {
+ packet_numbers_.erase(packet_number);
+}
+
+bool PacketNumberQueue::RemoveUpTo(QuicPacketNumber higher) {
+ size_t orig_size = packet_numbers_.size();
+ packet_numbers_.erase(packet_numbers_.begin(),
+ packet_numbers_.lower_bound(higher));
+ return orig_size != packet_numbers_.size();
+}
+
+bool PacketNumberQueue::Contains(QuicPacketNumber packet_number) const {
+ return ContainsKey(packet_numbers_, packet_number);
+}
+
+bool PacketNumberQueue::Empty() const {
+ return packet_numbers_.empty();
+}
+
+QuicPacketNumber PacketNumberQueue::Min() const {
+ DCHECK(!Empty());
+ return *packet_numbers_.begin();
+}
+
+QuicPacketNumber PacketNumberQueue::Max() const {
+ DCHECK(!Empty());
+ return *packet_numbers_.rbegin();
+}
+
+size_t PacketNumberQueue::NumPackets() const {
+ return packet_numbers_.size();
+}
+
+PacketNumberQueue::const_iterator PacketNumberQueue::begin() const {
+ return packet_numbers_.cbegin();
+}
+
+PacketNumberQueue::const_iterator PacketNumberQueue::end() const {
+ return packet_numbers_.cend();
+}
+
+PacketNumberQueue::const_iterator PacketNumberQueue::lower_bound(
+ QuicPacketNumber packet_number) const {
+ return packet_numbers_.lower_bound(packet_number);
+}
+
+PacketNumberQueue::const_iterator PacketNumberQueue::upper_bound(
+ QuicPacketNumber packet_number) const {
+ return packet_numbers_.upper_bound(packet_number);
+}
+
+ostream& operator<<(ostream& os, const PacketNumberQueue& q) {
+ for (QuicPacketNumber packet_number : q.packet_numbers_) {
+ os << packet_number << " ";
+ }
+ return os;
+}
+
ostream& operator<<(ostream& os, const QuicAckFrame& ack_frame) {
os << "entropy_hash: " << static_cast<int>(ack_frame.entropy_hash)
<< " largest_observed: " << ack_frame.largest_observed
<< " delta_time_largest_observed: "
<< ack_frame.delta_time_largest_observed.ToMicroseconds()
- << " missing_packets: [ ";
- for (PacketNumberSet::const_iterator it = ack_frame.missing_packets.begin();
- it != ack_frame.missing_packets.end(); ++it) {
- os << *it << " ";
- }
- os << " ] is_truncated: " << ack_frame.is_truncated;
+ << " missing_packets: [ " << ack_frame.missing_packets
+ << " ] is_truncated: " << ack_frame.is_truncated;
os << " revived_packets: [ ";
for (PacketNumberSet::const_iterator it = ack_frame.revived_packets.begin();
it != ack_frame.revived_packets.end(); ++it) {

Powered by Google App Engine
This is Rietveld 408576698