Index: net/quic/quic_connection.h |
diff --git a/net/quic/quic_connection.h b/net/quic/quic_connection.h |
index bf4e85cb2e489c071b22a20aae1c6880e81488a9..8de330bb81acd000d8f6f01eaeab2d5e65e81fd7 100644 |
--- a/net/quic/quic_connection.h |
+++ b/net/quic/quic_connection.h |
@@ -296,9 +296,12 @@ class NET_EXPORT_PRIVATE QuicConnection |
public QuicSentPacketManager::NetworkChangeVisitor { |
public: |
enum AckBundling { |
- NO_ACK = 0, |
- SEND_ACK = 1, |
- BUNDLE_PENDING_ACK = 2, |
+ // Send an ack if it's already queued in the connection. |
+ SEND_ACK_IF_QUEUED, |
+ // Always send an ack. |
+ SEND_ACK, |
+ // Bundle an ack with outgoing data. |
+ SEND_ACK_IF_PENDING, |
}; |
enum AckMode { TCP_ACKING, ACK_DECIMATION, ACK_DECIMATION_WITH_REORDERING }; |
@@ -613,6 +616,8 @@ class NET_EXPORT_PRIVATE QuicConnection |
~ScopedPacketBundler(); |
private: |
+ bool ShouldSendAck(AckBundling ack_mode) const; |
+ |
QuicConnection* connection_; |
bool already_in_batch_mode_; |
}; |
@@ -657,6 +662,8 @@ class NET_EXPORT_PRIVATE QuicConnection |
return termination_packets_.get(); |
} |
+ bool ack_queued() const { return ack_queued_; } |
+ |
bool ack_frame_updated() const; |
QuicConnectionHelperInterface* helper() { return helper_; } |
@@ -847,7 +854,7 @@ class NET_EXPORT_PRIVATE QuicConnection |
// True if the last packet has gotten far enough in the framer to be |
// decrypted. |
bool last_packet_decrypted_; |
- QuicByteCount last_size_; // Size of the last received packet. |
+ QuicByteCount last_size_; // Size of the last received packet. |
// TODO(rch): remove this when b/27221014 is fixed. |
const char* current_packet_data_; // UDP payload of packet currently being |
// parsed or nullptr. |