OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef NET_QUIC_QUIC_ACK_NOTIFIER_MANAGER_H_ | 5 #ifndef NET_QUIC_QUIC_ACK_NOTIFIER_MANAGER_H_ |
6 #define NET_QUIC_QUIC_ACK_NOTIFIER_MANAGER_H_ | 6 #define NET_QUIC_QUIC_ACK_NOTIFIER_MANAGER_H_ |
7 | 7 |
8 #include <map> | 8 #include <map> |
9 | 9 |
10 #include "base/containers/hash_tables.h" | 10 #include "base/containers/hash_tables.h" |
(...skipping 22 matching lines...) Expand all Loading... |
33 // interested in a given sequence number. | 33 // interested in a given sequence number. |
34 | 34 |
35 class NET_EXPORT_PRIVATE AckNotifierManager { | 35 class NET_EXPORT_PRIVATE AckNotifierManager { |
36 public: | 36 public: |
37 AckNotifierManager(); | 37 AckNotifierManager(); |
38 virtual ~AckNotifierManager(); | 38 virtual ~AckNotifierManager(); |
39 | 39 |
40 // Called when the connection receives a new AckFrame. If |sequence_number| | 40 // Called when the connection receives a new AckFrame. If |sequence_number| |
41 // exists in ack_notifier_map_ then the corresponding AckNotifiers will have | 41 // exists in ack_notifier_map_ then the corresponding AckNotifiers will have |
42 // their OnAck method called. | 42 // their OnAck method called. |
43 void OnPacketAcked(QuicPacketSequenceNumber sequence_number); | 43 void OnPacketAcked(QuicPacketSequenceNumber sequence_number, |
| 44 QuicTime::Delta delta_largest_observed); |
44 | 45 |
45 // If a packet has been retransmitted with a new sequence number, then this | 46 // If a packet has been retransmitted with a new sequence number, then this |
46 // will be called. It updates the mapping in ack_notifier_map_, and also | 47 // will be called. It updates the mapping in ack_notifier_map_, and also |
47 // updates the internal set of sequence numbers in each matching AckNotifier. | 48 // updates the internal set of sequence numbers in each matching AckNotifier. |
48 void UpdateSequenceNumber(QuicPacketSequenceNumber old_sequence_number, | 49 void UpdateSequenceNumber(QuicPacketSequenceNumber old_sequence_number, |
49 QuicPacketSequenceNumber new_sequence_number); | 50 QuicPacketSequenceNumber new_sequence_number); |
50 | 51 |
51 // This is called after a packet has been serialized, is ready to be sent, and | 52 // This is called after a packet has been serialized, is ready to be sent, and |
52 // contains retransmittable frames (which may have associated AckNotifiers). | 53 // contains retransmittable frames (which may have associated AckNotifiers). |
53 // If any of the retransmittable frames included in |serialized_packet| have | 54 // If any of the retransmittable frames included in |serialized_packet| have |
(...skipping 15 matching lines...) Expand all Loading... |
69 // Maps from sequence number to the AckNotifiers which are registered | 70 // Maps from sequence number to the AckNotifiers which are registered |
70 // for that sequence number. On receipt of an ACK for a given sequence | 71 // for that sequence number. On receipt of an ACK for a given sequence |
71 // number, call OnAck for all mapped AckNotifiers. | 72 // number, call OnAck for all mapped AckNotifiers. |
72 // Does not own the AckNotifiers. | 73 // Does not own the AckNotifiers. |
73 AckNotifierMap ack_notifier_map_; | 74 AckNotifierMap ack_notifier_map_; |
74 }; | 75 }; |
75 | 76 |
76 } // namespace net | 77 } // namespace net |
77 | 78 |
78 #endif // NET_QUIC_QUIC_ACK_NOTIFIER_MANAGER_H_ | 79 #endif // NET_QUIC_QUIC_ACK_NOTIFIER_MANAGER_H_ |
OLD | NEW |