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

Side by Side Diff: net/quic/core/quic_flow_controller.h

Issue 2850573002: Landing Recent QUIC changes until 3:35 PM, Apr 26, 2017 UTC-4 (Closed)
Patch Set: remove reinterpret_cast Created 3 years, 7 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 #ifndef NET_QUIC_CORE_QUIC_FLOW_CONTROLLER_H_ 5 #ifndef NET_QUIC_CORE_QUIC_FLOW_CONTROLLER_H_
6 #define NET_QUIC_CORE_QUIC_FLOW_CONTROLLER_H_ 6 #define NET_QUIC_CORE_QUIC_FLOW_CONTROLLER_H_
7 7
8 #include "base/macros.h" 8 #include "base/macros.h"
9 #include "net/quic/core/quic_packets.h" 9 #include "net/quic/core/quic_packets.h"
10 #include "net/quic/platform/api/quic_export.h" 10 #include "net/quic/platform/api/quic_export.h"
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
76 76
77 // Send a BLOCKED frame if appropriate. 77 // Send a BLOCKED frame if appropriate.
78 void MaybeSendBlocked(); 78 void MaybeSendBlocked();
79 79
80 // Returns true if flow control send limits have been reached. 80 // Returns true if flow control send limits have been reached.
81 bool IsBlocked() const; 81 bool IsBlocked() const;
82 82
83 // Returns true if flow control receive limits have been violated by the peer. 83 // Returns true if flow control receive limits have been violated by the peer.
84 bool FlowControlViolation(); 84 bool FlowControlViolation();
85 85
86 // Inform the peer of new receive window.
87 void SendWindowUpdate();
88
86 QuicByteCount bytes_consumed() const { return bytes_consumed_; } 89 QuicByteCount bytes_consumed() const { return bytes_consumed_; }
87 90
88 QuicStreamOffset highest_received_byte_offset() const { 91 QuicStreamOffset highest_received_byte_offset() const {
89 return highest_received_byte_offset_; 92 return highest_received_byte_offset_;
90 } 93 }
91 94
92 void set_receive_window_size_limit(QuicByteCount receive_window_size_limit) { 95 void set_receive_window_size_limit(QuicByteCount receive_window_size_limit) {
93 DCHECK_GE(receive_window_size_limit, receive_window_size_limit_); 96 DCHECK_GE(receive_window_size_limit, receive_window_size_limit_);
94 receive_window_size_limit_ = receive_window_size_limit; 97 receive_window_size_limit_ = receive_window_size_limit;
95 } 98 }
(...skipping 10 matching lines...) Expand all
106 private: 109 private:
107 friend class test::QuicFlowControllerPeer; 110 friend class test::QuicFlowControllerPeer;
108 111
109 // Send a WINDOW_UPDATE frame if appropriate. 112 // Send a WINDOW_UPDATE frame if appropriate.
110 void MaybeSendWindowUpdate(); 113 void MaybeSendWindowUpdate();
111 114
112 // Auto-tune the max receive window size. 115 // Auto-tune the max receive window size.
113 void MaybeIncreaseMaxWindowSize(); 116 void MaybeIncreaseMaxWindowSize();
114 117
115 // Updates the current offset and sends a window update frame. 118 // Updates the current offset and sends a window update frame.
116 void SendWindowUpdate(QuicStreamOffset available_window); 119 void UpdateReceiveWindowOffsetAndSendWindowUpdate(
120 QuicStreamOffset available_window);
117 121
118 // Double the window size as long as we haven't hit the max window size. 122 // Double the window size as long as we haven't hit the max window size.
119 void IncreaseWindowSize(); 123 void IncreaseWindowSize();
120 124
121 // The parent connection, used to send connection close on flow control 125 // The parent connection, used to send connection close on flow control
122 // violation, and WINDOW_UPDATE and BLOCKED frames when appropriate. 126 // violation, and WINDOW_UPDATE and BLOCKED frames when appropriate.
123 // Not owned. 127 // Not owned.
124 QuicConnection* connection_; 128 QuicConnection* connection_;
125 129
126 // ID of stream this flow controller belongs to. This can be 0 if this is a 130 // ID of stream this flow controller belongs to. This can be 0 if this is a
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
192 // Keep time of the last time a window update was sent. We use this 196 // Keep time of the last time a window update was sent. We use this
193 // as part of the receive window auto tuning. 197 // as part of the receive window auto tuning.
194 QuicTime prev_window_update_time_; 198 QuicTime prev_window_update_time_;
195 199
196 DISALLOW_COPY_AND_ASSIGN(QuicFlowController); 200 DISALLOW_COPY_AND_ASSIGN(QuicFlowController);
197 }; 201 };
198 202
199 } // namespace net 203 } // namespace net
200 204
201 #endif // NET_QUIC_CORE_QUIC_FLOW_CONTROLLER_H_ 205 #endif // NET_QUIC_CORE_QUIC_FLOW_CONTROLLER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698