| 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 // 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 Loading... |
| 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 Loading... |
| 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_ |
| OLD | NEW |