| Index: net/quic/quic_protocol.h
|
| diff --git a/net/quic/quic_protocol.h b/net/quic/quic_protocol.h
|
| index a24e5e9826f59fa648aea3af1dc4d8e08d330da6..9a8fd22d3c0b5279b3ae4dd2c540d14316a87137 100644
|
| --- a/net/quic/quic_protocol.h
|
| +++ b/net/quic/quic_protocol.h
|
| @@ -6,6 +6,7 @@
|
| #define NET_QUIC_QUIC_PROTOCOL_H_
|
|
|
| #include <limits>
|
| +#include <map>
|
| #include <ostream>
|
| #include <utility>
|
| #include <vector>
|
| @@ -168,14 +169,16 @@ typedef base::hash_set<QuicPacketSequenceNumber> SequenceSet;
|
| struct NET_EXPORT_PRIVATE ReceivedPacketInfo {
|
| ReceivedPacketInfo();
|
| ~ReceivedPacketInfo();
|
| +
|
| + void RecordAck(QuicPacketSequenceNumber sequence_number, QuicTime time);
|
| + bool ContainsAck(QuicPacketSequenceNumber sequence_number) const;
|
| + void ClearAcksBefore(QuicPacketSequenceNumber least_unacked);
|
| +
|
| // The highest packet sequence number we've received from the peer.
|
| QuicPacketSequenceNumber largest_received;
|
| - // The time at which we received the above packet.
|
| - QuicTime time_received;
|
| - // The set of packets which we're expecting and have not received.
|
| - // This includes any packets between the lowest and largest_received
|
| - // which we have neither seen nor been informed are non-retransmitting.
|
| - SequenceSet missing_packets;
|
| +
|
| + // The set of all received packets and their arrival times.
|
| + std::map<QuicPacketSequenceNumber, QuicTime> received_packet_times;
|
| };
|
|
|
| struct NET_EXPORT_PRIVATE SentPacketInfo {
|
| @@ -183,9 +186,6 @@ struct NET_EXPORT_PRIVATE SentPacketInfo {
|
| ~SentPacketInfo();
|
| // The lowest packet we've sent which is unacked, and we expect an ack for.
|
| QuicPacketSequenceNumber least_unacked;
|
| - // The set of packets between least_unacked and the last packet we have sent
|
| - // which we will not resend.
|
| - SequenceSet non_retransmiting;
|
| };
|
|
|
| // Defines for all types of congestion feedback that will be negotiated in QUIC,
|
| @@ -241,14 +241,11 @@ struct NET_EXPORT_PRIVATE CongestionInfo {
|
|
|
| struct NET_EXPORT_PRIVATE QuicAckFrame {
|
| QuicAckFrame() {}
|
| + // Testing convenience method to construct a QuicAckFrame with all packets
|
| + // from least_unacked to largest_received acked at time_received.
|
| QuicAckFrame(QuicPacketSequenceNumber largest_received,
|
| QuicTime time_received,
|
| - QuicPacketSequenceNumber least_unacked) {
|
| - received_info.largest_received = largest_received;
|
| - received_info.time_received = time_received;
|
| - sent_info.least_unacked = least_unacked;
|
| - congestion_info.type = kNone;
|
| - }
|
| + QuicPacketSequenceNumber least_unacked);
|
|
|
| NET_EXPORT_PRIVATE friend std::ostream& operator<<(std::ostream& os,
|
| const QuicAckFrame& s);
|
|
|