OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 // Accumulates frames for the next packet until more frames no longer fit or | 5 // Accumulates frames for the next packet until more frames no longer fit or |
6 // it's time to create a packet from them. Also provides packet creation of | 6 // it's time to create a packet from them. Also provides packet creation of |
7 // FEC packets based on previously created packets. If multipath enabled, only | 7 // FEC packets based on previously created packets. If multipath enabled, only |
8 // creates packets on one path at the same time. Currently, next packet number | 8 // creates packets on one path at the same time. Currently, next packet number |
9 // is tracked per-path. | 9 // is tracked per-path. |
10 | 10 |
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
131 FecProtection fec_protection); | 131 FecProtection fec_protection); |
132 | 132 |
133 // Returns true if current open packet can accommodate more stream frames of | 133 // Returns true if current open packet can accommodate more stream frames of |
134 // stream |id| at |offset|, false otherwise. | 134 // stream |id| at |offset|, false otherwise. |
135 bool HasRoomForStreamFrame(QuicStreamId id, QuicStreamOffset offset); | 135 bool HasRoomForStreamFrame(QuicStreamId id, QuicStreamOffset offset); |
136 | 136 |
137 // Re-serializes frames with the original packet's packet number length. | 137 // Re-serializes frames with the original packet's packet number length. |
138 // Used for retransmitting packets to ensure they aren't too long. | 138 // Used for retransmitting packets to ensure they aren't too long. |
139 // Caller must ensure that any open FEC group is closed before calling this | 139 // Caller must ensure that any open FEC group is closed before calling this |
140 // method. | 140 // method. |
141 SerializedPacket ReserializeAllFrames( | 141 void ReserializeAllFrames(const PendingRetransmission& retransmission, |
142 const PendingRetransmission& retransmission, | 142 char* buffer, |
143 char* buffer, | 143 size_t buffer_len); |
144 size_t buffer_len); | |
145 | 144 |
146 // Serializes all added frames into a single packet and invokes the delegate_ | 145 // Serializes all added frames into a single packet and invokes the delegate_ |
147 // to further process the SerializedPacket. | 146 // to further process the SerializedPacket. |
148 void Flush(); | 147 void Flush(); |
149 | 148 |
150 // Returns true if there are frames pending to be serialized. | 149 // Returns true if there are frames pending to be serialized. |
151 bool HasPendingFrames() const; | 150 bool HasPendingFrames() const; |
152 | 151 |
153 // Returns true if there are retransmittable frames pending to be serialized. | 152 // Returns true if there are retransmittable frames pending to be serialized. |
154 bool HasPendingRetransmittableFrames() const; | 153 bool HasPendingRetransmittableFrames() const; |
(...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
416 // The multiplication factor for FEC timeout based on RTT. | 415 // The multiplication factor for FEC timeout based on RTT. |
417 // TODO(rtenneti): Delete this code after the 0.25 RTT FEC experiment. | 416 // TODO(rtenneti): Delete this code after the 0.25 RTT FEC experiment. |
418 float rtt_multiplier_for_fec_timeout_; | 417 float rtt_multiplier_for_fec_timeout_; |
419 | 418 |
420 DISALLOW_COPY_AND_ASSIGN(QuicPacketCreator); | 419 DISALLOW_COPY_AND_ASSIGN(QuicPacketCreator); |
421 }; | 420 }; |
422 | 421 |
423 } // namespace net | 422 } // namespace net |
424 | 423 |
425 #endif // NET_QUIC_QUIC_PACKET_CREATOR_H_ | 424 #endif // NET_QUIC_QUIC_PACKET_CREATOR_H_ |
OLD | NEW |