| 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_SENT_PACKET_MANAGER_H_ | 5 #ifndef NET_QUIC_QUIC_SENT_PACKET_MANAGER_H_ |
| 6 #define NET_QUIC_QUIC_SENT_PACKET_MANAGER_H_ | 6 #define NET_QUIC_QUIC_SENT_PACKET_MANAGER_H_ |
| 7 | 7 |
| 8 #include <map> | 8 #include <map> |
| 9 #include <set> | 9 #include <set> |
| 10 #include <utility> | 10 #include <utility> |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 45 class NET_EXPORT_PRIVATE DebugDelegate { | 45 class NET_EXPORT_PRIVATE DebugDelegate { |
| 46 public: | 46 public: |
| 47 virtual ~DebugDelegate() {} | 47 virtual ~DebugDelegate() {} |
| 48 | 48 |
| 49 // Called when a spurious retransmission is detected. | 49 // Called when a spurious retransmission is detected. |
| 50 virtual void OnSpuriousPacketRetransmition( | 50 virtual void OnSpuriousPacketRetransmition( |
| 51 TransmissionType transmission_type, | 51 TransmissionType transmission_type, |
| 52 QuicByteCount byte_size) {} | 52 QuicByteCount byte_size) {} |
| 53 | 53 |
| 54 virtual void OnSentPacket( | 54 virtual void OnSentPacket( |
| 55 QuicPacketSequenceNumber sequence_number, | 55 const SerializedPacket& packet, |
| 56 QuicPacketSequenceNumber original_sequence_number, |
| 56 QuicTime sent_time, | 57 QuicTime sent_time, |
| 57 QuicByteCount bytes, | 58 QuicByteCount bytes, |
| 58 TransmissionType transmission_type) {} | 59 TransmissionType transmission_type) {} |
| 59 | 60 |
| 60 virtual void OnRetransmittedPacket( | |
| 61 QuicPacketSequenceNumber old_sequence_number, | |
| 62 QuicPacketSequenceNumber new_sequence_number, | |
| 63 TransmissionType transmission_type, | |
| 64 QuicTime time) {} | |
| 65 | |
| 66 virtual void OnIncomingAck( | 61 virtual void OnIncomingAck( |
| 67 const QuicAckFrame& ack_frame, | 62 const QuicAckFrame& ack_frame, |
| 68 QuicTime ack_receive_time, | 63 QuicTime ack_receive_time, |
| 69 QuicPacketSequenceNumber largest_observed, | 64 QuicPacketSequenceNumber largest_observed, |
| 70 bool largest_observed_acked, | 65 bool largest_observed_acked, |
| 71 QuicPacketSequenceNumber least_unacked_sent_packet) {} | 66 QuicPacketSequenceNumber least_unacked_sent_packet) {} |
| 72 | |
| 73 virtual void OnSerializedPacket( | |
| 74 const SerializedPacket& packet) {} | |
| 75 }; | 67 }; |
| 76 | 68 |
| 77 // Interface which gets callbacks from the QuicSentPacketManager when | 69 // Interface which gets callbacks from the QuicSentPacketManager when |
| 78 // network-related state changes. Implementations must not mutate the | 70 // network-related state changes. Implementations must not mutate the |
| 79 // state of the packet manager as a result of these callbacks. | 71 // state of the packet manager as a result of these callbacks. |
| 80 class NET_EXPORT_PRIVATE NetworkChangeVisitor { | 72 class NET_EXPORT_PRIVATE NetworkChangeVisitor { |
| 81 public: | 73 public: |
| 82 virtual ~NetworkChangeVisitor() {} | 74 virtual ~NetworkChangeVisitor() {} |
| 83 | 75 |
| 84 // Called when congestion window may have changed. | 76 // Called when congestion window may have changed. |
| (...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 250 // Retransmission of handshake packets prior to handshake completion. | 242 // Retransmission of handshake packets prior to handshake completion. |
| 251 HANDSHAKE_MODE, | 243 HANDSHAKE_MODE, |
| 252 // Re-invoke the loss detection when a packet is not acked before the | 244 // Re-invoke the loss detection when a packet is not acked before the |
| 253 // loss detection algorithm expects. | 245 // loss detection algorithm expects. |
| 254 LOSS_MODE, | 246 LOSS_MODE, |
| 255 }; | 247 }; |
| 256 | 248 |
| 257 typedef linked_hash_map<QuicPacketSequenceNumber, | 249 typedef linked_hash_map<QuicPacketSequenceNumber, |
| 258 TransmissionType> PendingRetransmissionMap; | 250 TransmissionType> PendingRetransmissionMap; |
| 259 | 251 |
| 260 // Called when a new packet is serialized. If the packet contains | |
| 261 // retransmittable data, it will be added to the unacked packet map. | |
| 262 void OnSerializedPacket(const SerializedPacket& serialized_packet); | |
| 263 | |
| 264 // Called when a packet is retransmitted with a new sequence number. | 252 // Called when a packet is retransmitted with a new sequence number. |
| 265 // Replaces the old entry in the unacked packet map with the new | 253 // Replaces the old entry in the unacked packet map with the new |
| 266 // sequence number. | 254 // sequence number. |
| 267 void OnRetransmittedPacket(QuicPacketSequenceNumber old_sequence_number, | 255 void OnRetransmittedPacket(QuicPacketSequenceNumber old_sequence_number, |
| 268 QuicPacketSequenceNumber new_sequence_number); | 256 QuicPacketSequenceNumber new_sequence_number); |
| 269 | 257 |
| 270 // Updates the least_packet_awaited_by_peer. | 258 // Updates the least_packet_awaited_by_peer. |
| 271 void UpdatePacketInformationReceivedByPeer(const QuicAckFrame& ack_frame); | 259 void UpdatePacketInformationReceivedByPeer(const QuicAckFrame& ack_frame); |
| 272 | 260 |
| 273 // Process the incoming ack looking for newly ack'd data packets. | 261 // Process the incoming ack looking for newly ack'd data packets. |
| (...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 391 // Records bandwidth from server to client in normal operation, over periods | 379 // Records bandwidth from server to client in normal operation, over periods |
| 392 // of time with no loss events. | 380 // of time with no loss events. |
| 393 QuicSustainedBandwidthRecorder sustained_bandwidth_recorder_; | 381 QuicSustainedBandwidthRecorder sustained_bandwidth_recorder_; |
| 394 | 382 |
| 395 DISALLOW_COPY_AND_ASSIGN(QuicSentPacketManager); | 383 DISALLOW_COPY_AND_ASSIGN(QuicSentPacketManager); |
| 396 }; | 384 }; |
| 397 | 385 |
| 398 } // namespace net | 386 } // namespace net |
| 399 | 387 |
| 400 #endif // NET_QUIC_QUIC_SENT_PACKET_MANAGER_H_ | 388 #endif // NET_QUIC_QUIC_SENT_PACKET_MANAGER_H_ |
| OLD | NEW |