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. |