Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(425)

Side by Side Diff: net/quic/quic_packet_creator.h

Issue 326403006: Enables PacketGenerator's use of PacketCreator's FEC primitives. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « net/quic/quic_connection_test.cc ('k') | net/quic/quic_packet_creator.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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. 7 // FEC packets based on previously created packets.
8 8
9 #ifndef NET_QUIC_QUIC_PACKET_CREATOR_H_ 9 #ifndef NET_QUIC_QUIC_PACKET_CREATOR_H_
10 #define NET_QUIC_QUIC_PACKET_CREATOR_H_ 10 #define NET_QUIC_QUIC_PACKET_CREATOR_H_
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 // Turn off FEC protection for subsequently created packets. If the creator 49 // Turn off FEC protection for subsequently created packets. If the creator
50 // has any open FEC group, call will fail. It is the caller's responsibility 50 // has any open FEC group, call will fail. It is the caller's responsibility
51 // to flush out FEC packets in generation, and to verify with ShouldSendFec() 51 // to flush out FEC packets in generation, and to verify with ShouldSendFec()
52 // that there is no open FEC group. 52 // that there is no open FEC group.
53 void StopFecProtectingPackets(); 53 void StopFecProtectingPackets();
54 54
55 // Checks if it's time to send an FEC packet. |force_close| forces this to 55 // Checks if it's time to send an FEC packet. |force_close| forces this to
56 // return true if an FEC group is open. 56 // return true if an FEC group is open.
57 bool ShouldSendFec(bool force_close) const; 57 bool ShouldSendFec(bool force_close) const;
58 58
59 // Returns true if an FEC packet is under construction.
60 bool IsFecGroupOpen() const;
61
59 // Makes the framer not serialize the protocol version in sent packets. 62 // Makes the framer not serialize the protocol version in sent packets.
60 void StopSendingVersion(); 63 void StopSendingVersion();
61 64
62 // Update the sequence number length to use in future packets as soon as it 65 // Update the sequence number length to use in future packets as soon as it
63 // can be safely changed. 66 // can be safely changed.
64 void UpdateSequenceNumberLength( 67 void UpdateSequenceNumberLength(
65 QuicPacketSequenceNumber least_packet_awaited_by_peer, 68 QuicPacketSequenceNumber least_packet_awaited_by_peer,
66 QuicByteCount congestion_window); 69 QuicByteCount congestion_window);
67 70
68 // The overhead the framing will add for a packet with one frame. 71 // The overhead the framing will add for a packet with one frame.
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
104 SerializedPacket SerializeAllFrames(const QuicFrames& frames); 107 SerializedPacket SerializeAllFrames(const QuicFrames& frames);
105 108
106 // Re-serializes frames with the original packet's sequence number length. 109 // Re-serializes frames with the original packet's sequence number length.
107 // Used for retransmitting packets to ensure they aren't too long. 110 // Used for retransmitting packets to ensure they aren't too long.
108 // Caller must ensure that any open FEC group is closed before calling this 111 // Caller must ensure that any open FEC group is closed before calling this
109 // method. 112 // method.
110 SerializedPacket ReserializeAllFrames( 113 SerializedPacket ReserializeAllFrames(
111 const QuicFrames& frames, QuicSequenceNumberLength original_length); 114 const QuicFrames& frames, QuicSequenceNumberLength original_length);
112 115
113 // Returns true if there are frames pending to be serialized. 116 // Returns true if there are frames pending to be serialized.
114 bool HasPendingFrames(); 117 bool HasPendingFrames() const;
115 118
116 // Returns whether FEC protection is currently enabled. Note: Enabled does not 119 // Returns whether FEC protection is currently enabled. Note: Enabled does not
117 // mean that an FEC group is currently active; i.e., IsFecProtected() may 120 // mean that an FEC group is currently active; i.e., IsFecProtected() may
118 // still return false. 121 // still return false.
119 bool IsFecEnabled() const; 122 bool IsFecEnabled() const;
120 123
121 // Returns true if subsequent packets will be FEC protected. Note: True does 124 // Returns true if subsequent packets will be FEC protected. Note: True does
122 // not mean that an FEC packet is currently under construction; i.e., 125 // not mean that an FEC packet is currently under construction; i.e.,
123 // fec_group_.get() may still be NULL, until MaybeStartFec() is called. 126 // fec_group_.get() may still be NULL, until MaybeStartFec() is called.
124 bool IsFecProtected() const; 127 bool IsFecProtected() const;
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
286 mutable size_t packet_size_; 289 mutable size_t packet_size_;
287 QuicFrames queued_frames_; 290 QuicFrames queued_frames_;
288 scoped_ptr<RetransmittableFrames> queued_retransmittable_frames_; 291 scoped_ptr<RetransmittableFrames> queued_retransmittable_frames_;
289 292
290 DISALLOW_COPY_AND_ASSIGN(QuicPacketCreator); 293 DISALLOW_COPY_AND_ASSIGN(QuicPacketCreator);
291 }; 294 };
292 295
293 } // namespace net 296 } // namespace net
294 297
295 #endif // NET_QUIC_QUIC_PACKET_CREATOR_H_ 298 #endif // NET_QUIC_QUIC_PACKET_CREATOR_H_
OLDNEW
« no previous file with comments | « net/quic/quic_connection_test.cc ('k') | net/quic/quic_packet_creator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698