| Index: net/quic/quic_packet_generator.h
|
| diff --git a/net/quic/quic_packet_generator.h b/net/quic/quic_packet_generator.h
|
| index 1ff04882ae11380f0e1d4aa46e0e2d712a79e4ad..1434451fb6d4648f25ed0357a1fd642928e21d31 100644
|
| --- a/net/quic/quic_packet_generator.h
|
| +++ b/net/quic/quic_packet_generator.h
|
| @@ -69,6 +69,7 @@ class NET_EXPORT_PRIVATE QuicPacketGenerator {
|
| IsHandshake handshake) = 0;
|
| virtual QuicAckFrame* CreateAckFrame() = 0;
|
| virtual QuicCongestionFeedbackFrame* CreateFeedbackFrame() = 0;
|
| + virtual QuicStopWaitingFrame* CreateStopWaitingFrame() = 0;
|
| // Takes ownership of |packet.packet| and |packet.retransmittable_frames|.
|
| virtual bool OnSerializedPacket(const SerializedPacket& packet) = 0;
|
| virtual void CloseConnection(QuicErrorCode error, bool from_peer) = 0;
|
| @@ -93,9 +94,16 @@ class NET_EXPORT_PRIVATE QuicPacketGenerator {
|
|
|
| // Indicates that an ACK frame should be sent. If |also_send_feedback| is
|
| // true, then it also indicates a CONGESTION_FEEDBACK frame should be sent.
|
| + // If |also_send_stop_waiting| is true, then it also indicates that a
|
| + // STOP_WAITING frame should be sent as well.
|
| // The contents of the frame(s) will be generated via a call to the delegates
|
| // CreateAckFrame() and CreateFeedbackFrame() when the packet is serialized.
|
| - void SetShouldSendAck(bool also_send_feedback);
|
| + void SetShouldSendAck(bool also_send_feedback,
|
| + bool also_send_stop_waiting);
|
| +
|
| + // Indicates that a STOP_WAITING frame should be sent.
|
| + void SetShouldSendStopWaiting();
|
| +
|
| void AddControlFrame(const QuicFrame& frame);
|
|
|
| // Given some data, may consume part or all of it and pass it to the
|
| @@ -155,12 +163,14 @@ class NET_EXPORT_PRIVATE QuicPacketGenerator {
|
| // Flags to indicate the need for just-in-time construction of a frame.
|
| bool should_send_ack_;
|
| bool should_send_feedback_;
|
| + bool should_send_stop_waiting_;
|
| // If we put a non-retransmittable frame (namley ack or feedback frame) in
|
| // this packet, then we have to hold a reference to it until we flush (and
|
| // serialize it). Retransmittable frames are referenced elsewhere so that they
|
| // can later be (optionally) retransmitted.
|
| scoped_ptr<QuicAckFrame> pending_ack_frame_;
|
| scoped_ptr<QuicCongestionFeedbackFrame> pending_feedback_frame_;
|
| + scoped_ptr<QuicStopWaitingFrame> pending_stop_waiting_frame_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(QuicPacketGenerator);
|
| };
|
|
|