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 #ifndef NET_QUIC_QUIC_MULTIPATH_SENT_PACKET_MANAGER_H_ | 5 #ifndef NET_QUIC_QUIC_MULTIPATH_SENT_PACKET_MANAGER_H_ |
6 #define NET_QUIC_QUIC_MULTIPATH_SENT_PACKET_MANAGER_H_ | 6 #define NET_QUIC_QUIC_MULTIPATH_SENT_PACKET_MANAGER_H_ |
7 | 7 |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "net/base/net_export.h" | 10 #include "net/base/net_export.h" |
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
125 QuicByteCount max_packet_length) const override; | 125 QuicByteCount max_packet_length) const override; |
126 | 126 |
127 // Returns the size of the current congestion window size on the default path | 127 // Returns the size of the current congestion window size on the default path |
128 // in bytes. | 128 // in bytes. |
129 QuicByteCount GetCongestionWindowInBytes() const override; | 129 QuicByteCount GetCongestionWindowInBytes() const override; |
130 | 130 |
131 // Returns the size of the slow start congestion window in number of 1460 byte | 131 // Returns the size of the slow start congestion window in number of 1460 byte |
132 // TCP segments on the default path. | 132 // TCP segments on the default path. |
133 QuicPacketCount GetSlowStartThresholdInTcpMss() const override; | 133 QuicPacketCount GetSlowStartThresholdInTcpMss() const override; |
134 | 134 |
| 135 // Returns debugging information about the state of the congestion |
| 136 // controller for all paths. |
| 137 std::string GetDebugState() const override; |
| 138 |
135 // No longer retransmit data for |stream_id| on all paths and any pending | 139 // No longer retransmit data for |stream_id| on all paths and any pending |
136 // retransmissions in pending_retransmissions_. | 140 // retransmissions in pending_retransmissions_. |
137 void CancelRetransmissionsForStream(QuicStreamId stream_id) override; | 141 void CancelRetransmissionsForStream(QuicStreamId stream_id) override; |
138 | 142 |
139 void OnConnectionMigration(QuicPathId path_id, | 143 void OnConnectionMigration(QuicPathId path_id, |
140 PeerAddressChangeType type) override; | 144 PeerAddressChangeType type) override; |
141 | 145 |
142 bool IsHandshakeConfirmed() const override; | 146 bool IsHandshakeConfirmed() const override; |
143 | 147 |
144 // Sets debug delegate for all active paths. | 148 // Sets debug delegate for all active paths. |
(...skipping 10 matching lines...) Expand all Loading... |
155 void SetNetworkChangeVisitor(NetworkChangeVisitor* visitor) override; | 159 void SetNetworkChangeVisitor(NetworkChangeVisitor* visitor) override; |
156 | 160 |
157 // Returns true if the default path is in slow start. | 161 // Returns true if the default path is in slow start. |
158 bool InSlowStart() const override; | 162 bool InSlowStart() const override; |
159 | 163 |
160 // These two methods return the consecutive RTO or TLP count of the default | 164 // These two methods return the consecutive RTO or TLP count of the default |
161 // path. | 165 // path. |
162 size_t GetConsecutiveRtoCount() const override; | 166 size_t GetConsecutiveRtoCount() const override; |
163 size_t GetConsecutiveTlpCount() const override; | 167 size_t GetConsecutiveTlpCount() const override; |
164 | 168 |
| 169 void OnApplicationLimited() override; |
| 170 |
165 private: | 171 private: |
166 friend class test::QuicConnectionPeer; | 172 friend class test::QuicConnectionPeer; |
167 friend class test::QuicMultipathSentPacketManagerPeer; | 173 friend class test::QuicMultipathSentPacketManagerPeer; |
168 | 174 |
169 // State of per path sent packet manager. | 175 // State of per path sent packet manager. |
170 // TODO(fayang): Need to add a state that path can receive acks but cannot | 176 // TODO(fayang): Need to add a state that path can receive acks but cannot |
171 // send data. | 177 // send data. |
172 enum PathSentPacketManagerState { | 178 enum PathSentPacketManagerState { |
173 ACTIVE, // We both send packets and receiving acks on this path. | 179 ACTIVE, // We both send packets and receiving acks on this path. |
174 CLOSING, // We stop sending packets and receiving acks on this path. There | 180 CLOSING, // We stop sending packets and receiving acks on this path. There |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
207 | 213 |
208 // Does not own this delegate. | 214 // Does not own this delegate. |
209 QuicConnectionCloseDelegateInterface* delegate_; | 215 QuicConnectionCloseDelegateInterface* delegate_; |
210 | 216 |
211 DISALLOW_COPY_AND_ASSIGN(QuicMultipathSentPacketManager); | 217 DISALLOW_COPY_AND_ASSIGN(QuicMultipathSentPacketManager); |
212 }; | 218 }; |
213 | 219 |
214 } // namespace net | 220 } // namespace net |
215 | 221 |
216 #endif // NET_QUIC_QUIC_MULTIPATH_SENT_PACKET_MANAGER_H_ | 222 #endif // NET_QUIC_QUIC_MULTIPATH_SENT_PACKET_MANAGER_H_ |
OLD | NEW |