| Index: net/quic/quic_packet_generator.h
|
| diff --git a/net/quic/quic_packet_generator.h b/net/quic/quic_packet_generator.h
|
| index e9c773b910ae3dd2ea2a4b97ffe08c82aa02d528..d408aeab31b4eded5ebb60b4c6c54f88feda0ed4 100644
|
| --- a/net/quic/quic_packet_generator.h
|
| +++ b/net/quic/quic_packet_generator.h
|
| @@ -91,9 +91,10 @@ class NET_EXPORT_PRIVATE QuicPacketGenerator {
|
| virtual void OnFrameAddedToPacket(const QuicFrame& frame) {}
|
| };
|
|
|
| - QuicPacketGenerator(DelegateInterface* delegate,
|
| - DebugDelegate* debug_delegate,
|
| - QuicPacketCreator* creator);
|
| + QuicPacketGenerator(QuicConnectionId connection_id,
|
| + QuicFramer* framer,
|
| + QuicRandom* random_generator,
|
| + DelegateInterface* delegate);
|
|
|
| virtual ~QuicPacketGenerator();
|
|
|
| @@ -122,6 +123,7 @@ class NET_EXPORT_PRIVATE QuicPacketGenerator {
|
| const IOVector& data,
|
| QuicStreamOffset offset,
|
| bool fin,
|
| + FecProtection fec_protection,
|
| QuicAckNotifier* notifier);
|
|
|
| // Indicates whether batch mode is currently enabled.
|
| @@ -136,6 +138,42 @@ class NET_EXPORT_PRIVATE QuicPacketGenerator {
|
|
|
| bool HasQueuedFrames() const;
|
|
|
| + // Makes the framer not serialize the protocol version in sent packets.
|
| + void StopSendingVersion();
|
| +
|
| + // Creates a version negotiation packet which supports |supported_versions|.
|
| + // Caller owns the created packet. Also, sets the entropy hash of the
|
| + // serialized packet to a random bool and returns that value as a member of
|
| + // SerializedPacket.
|
| + QuicEncryptedPacket* SerializeVersionNegotiationPacket(
|
| + const QuicVersionVector& supported_versions);
|
| +
|
| +
|
| + // Re-serializes frames with the original packet's sequence number length.
|
| + // Used for retransmitting packets to ensure they aren't too long.
|
| + // Caller must ensure that any open FEC group is closed before calling this
|
| + // method.
|
| + SerializedPacket ReserializeAllFrames(
|
| + const QuicFrames& frames,
|
| + QuicSequenceNumberLength original_length);
|
| +
|
| + // Update the sequence number length to use in future packets as soon as it
|
| + // can be safely changed.
|
| + void UpdateSequenceNumberLength(
|
| + QuicPacketSequenceNumber least_packet_awaited_by_peer,
|
| + QuicByteCount congestion_window);
|
| +
|
| + // Sets the encryption level that will be applied to new packets.
|
| + void set_encryption_level(EncryptionLevel level);
|
| +
|
| + // Sequence number of the last created packet, or 0 if no packets have been
|
| + // created.
|
| + QuicPacketSequenceNumber sequence_number() const;
|
| +
|
| + size_t max_packet_length() const;
|
| +
|
| + void set_max_packet_length(size_t length);
|
| +
|
| void set_debug_delegate(DebugDelegate* debug_delegate) {
|
| debug_delegate_ = debug_delegate;
|
| }
|
| @@ -150,14 +188,6 @@ class NET_EXPORT_PRIVATE QuicPacketGenerator {
|
| // creator, in which case, only the generator's state is altered.
|
| void MaybeStartFecProtection();
|
|
|
| - // Turn off FEC protection for subsequent packets. If |force| is true,
|
| - // force-closes any open FEC group, sends out an FEC packet if one was under
|
| - // construction, and turns off protection in the generator and creator. If
|
| - // |force| is false, does the same as above if the creator is ready to send
|
| - // and FEC packet. Note that when |force| is false, the creator may still have
|
| - // an open FEC group after this method runs.
|
| - void MaybeStopFecProtection(bool force);
|
| -
|
| // Serializes and calls the delegate on an FEC packet if one was under
|
| // construction in the creator. When |force| is false, it relies on the
|
| // creator being ready to send an FEC packet, otherwise FEC packet is sent
|
| @@ -183,13 +213,14 @@ class NET_EXPORT_PRIVATE QuicPacketGenerator {
|
| DelegateInterface* delegate_;
|
| DebugDelegate* debug_delegate_;
|
|
|
| - QuicPacketCreator* packet_creator_;
|
| + QuicPacketCreator packet_creator_;
|
| QuicFrames queued_control_frames_;
|
|
|
| // True if batch mode is currently enabled.
|
| bool batch_mode_;
|
|
|
| - // True if FEC protection is on.
|
| + // True if FEC protection is on. The creator may have an open FEC group even
|
| + // if this variable is false.
|
| bool should_fec_protect_;
|
|
|
| // Flags to indicate the need for just-in-time construction of a frame.
|
|
|