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

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

Issue 368803003: QUIC_VERSION_21: headers and crypto streams are now flow controlled at (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 5 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
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 // The base class for client/server reliable streams. 5 // The base class for client/server reliable streams.
6 6
7 #ifndef NET_QUIC_RELIABLE_QUIC_STREAM_H_ 7 #ifndef NET_QUIC_RELIABLE_QUIC_STREAM_H_
8 #define NET_QUIC_RELIABLE_QUIC_STREAM_H_ 8 #define NET_QUIC_RELIABLE_QUIC_STREAM_H_
9 9
10 #include <sys/types.h> 10 #include <sys/types.h>
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
155 bool HasBufferedData() const; 155 bool HasBufferedData() const;
156 156
157 bool fin_buffered() const { return fin_buffered_; } 157 bool fin_buffered() const { return fin_buffered_; }
158 158
159 const QuicSession* session() const { return session_; } 159 const QuicSession* session() const { return session_; }
160 QuicSession* session() { return session_; } 160 QuicSession* session() { return session_; }
161 161
162 const QuicStreamSequencer* sequencer() const { return &sequencer_; } 162 const QuicStreamSequencer* sequencer() const { return &sequencer_; }
163 QuicStreamSequencer* sequencer() { return &sequencer_; } 163 QuicStreamSequencer* sequencer() { return &sequencer_; }
164 164
165 // TODO(rjshade): Remove this method when removing QUIC_VERSION_20.
165 void DisableFlowControl() { 166 void DisableFlowControl() {
166 flow_controller_.Disable(); 167 flow_controller_.Disable();
167 } 168 }
168 169
170 void DisableConnectionFlowControlForThisStream() {
171 stream_contributes_to_connection_flow_control_ = false;
172 }
173
169 private: 174 private:
170 friend class test::ReliableQuicStreamPeer; 175 friend class test::ReliableQuicStreamPeer;
171 friend class QuicStreamUtils; 176 friend class QuicStreamUtils;
172 class ProxyAckNotifierDelegate; 177 class ProxyAckNotifierDelegate;
173 178
174 struct PendingData { 179 struct PendingData {
175 PendingData(string data_in, 180 PendingData(string data_in,
176 scoped_refptr<ProxyAckNotifierDelegate> delegate_in); 181 scoped_refptr<ProxyAckNotifierDelegate> delegate_in);
177 ~PendingData(); 182 ~PendingData();
178 183
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
228 FecPolicy fec_policy_; 233 FecPolicy fec_policy_;
229 234
230 // True if the session this stream is running under is a server session. 235 // True if the session this stream is running under is a server session.
231 bool is_server_; 236 bool is_server_;
232 237
233 QuicFlowController flow_controller_; 238 QuicFlowController flow_controller_;
234 239
235 // The connection level flow controller. Not owned. 240 // The connection level flow controller. Not owned.
236 QuicFlowController* connection_flow_controller_; 241 QuicFlowController* connection_flow_controller_;
237 242
243 // Special streams, such as the crypto and headers streams, do not respect
244 // connection level flow control limits (but are stream level flow control
245 // limited).
246 bool stream_contributes_to_connection_flow_control_;
247
238 DISALLOW_COPY_AND_ASSIGN(ReliableQuicStream); 248 DISALLOW_COPY_AND_ASSIGN(ReliableQuicStream);
239 }; 249 };
240 250
241 } // namespace net 251 } // namespace net
242 252
243 #endif // NET_QUIC_RELIABLE_QUIC_STREAM_H_ 253 #endif // NET_QUIC_RELIABLE_QUIC_STREAM_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698