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 #include "net/quic/core/quic_multipath_sent_packet_manager.h" | 5 #include "net/quic/core/quic_multipath_sent_packet_manager.h" |
6 | 6 |
7 #include <cstdint> | 7 #include <cstdint> |
8 | 8 |
9 #include "base/strings/string_number_conversions.h" | 9 #include "base/strings/string_number_conversions.h" |
10 #include "net/quic/core/quic_bug_tracker.h" | 10 #include "net/quic/core/quic_bug_tracker.h" |
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
122 } | 122 } |
123 | 123 |
124 bool QuicMultipathSentPacketManager::HasPendingRetransmissions() const { | 124 bool QuicMultipathSentPacketManager::HasPendingRetransmissions() const { |
125 // TODO(fayang): Move pending_retransmissions_ from path sent packet manager | 125 // TODO(fayang): Move pending_retransmissions_ from path sent packet manager |
126 // to multipath sent packet manager. | 126 // to multipath sent packet manager. |
127 QuicSentPacketManagerInterface* path_manager = | 127 QuicSentPacketManagerInterface* path_manager = |
128 MaybeGetSentPacketManagerForActivePath(kDefaultPathId); | 128 MaybeGetSentPacketManagerForActivePath(kDefaultPathId); |
129 return path_manager != nullptr && path_manager->HasPendingRetransmissions(); | 129 return path_manager != nullptr && path_manager->HasPendingRetransmissions(); |
130 } | 130 } |
131 | 131 |
132 PendingRetransmission | 132 QuicPendingRetransmission |
133 QuicMultipathSentPacketManager::NextPendingRetransmission() { | 133 QuicMultipathSentPacketManager::NextPendingRetransmission() { |
134 // TODO(fayang): Move pending_retransmissions_ from path sent packet manager | 134 // TODO(fayang): Move pending_retransmissions_ from path sent packet manager |
135 // to multipath sent packet manager. | 135 // to multipath sent packet manager. |
136 QuicSentPacketManagerInterface* path_manager = | 136 QuicSentPacketManagerInterface* path_manager = |
137 MaybeGetSentPacketManagerForActivePath(kDefaultPathId); | 137 MaybeGetSentPacketManagerForActivePath(kDefaultPathId); |
138 if (path_manager == nullptr) { | 138 if (path_manager == nullptr) { |
139 OnUnrecoverablePathError(kDefaultPathId); | 139 OnUnrecoverablePathError(kDefaultPathId); |
140 QuicFrames retransmittable_frames; | 140 QuicFrames retransmittable_frames; |
141 return PendingRetransmission(kInvalidPathId, 0u, NOT_RETRANSMISSION, | 141 return QuicPendingRetransmission( |
142 retransmittable_frames, false, 0, | 142 kInvalidPathId, 0u, NOT_RETRANSMISSION, retransmittable_frames, false, |
143 ENCRYPTION_NONE, PACKET_1BYTE_PACKET_NUMBER); | 143 0, ENCRYPTION_NONE, PACKET_1BYTE_PACKET_NUMBER); |
144 } | 144 } |
145 return path_manager->NextPendingRetransmission(); | 145 return path_manager->NextPendingRetransmission(); |
146 } | 146 } |
147 | 147 |
148 bool QuicMultipathSentPacketManager::HasUnackedPackets() const { | 148 bool QuicMultipathSentPacketManager::HasUnackedPackets() const { |
149 for (PathSentPacketManagerInfo path_manager_info : path_managers_info_) { | 149 for (PathSentPacketManagerInfo path_manager_info : path_managers_info_) { |
150 if (path_manager_info.manager != nullptr && | 150 if (path_manager_info.manager != nullptr && |
151 path_manager_info.state == ACTIVE && | 151 path_manager_info.state == ACTIVE && |
152 path_manager_info.manager->HasUnackedPackets()) { | 152 path_manager_info.manager->HasUnackedPackets()) { |
153 return true; | 153 return true; |
(...skipping 360 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
514 void QuicMultipathSentPacketManager::OnApplicationLimited() { | 514 void QuicMultipathSentPacketManager::OnApplicationLimited() { |
515 for (PathSentPacketManagerInfo& path_manager_info : path_managers_info_) { | 515 for (PathSentPacketManagerInfo& path_manager_info : path_managers_info_) { |
516 if (path_manager_info.manager == nullptr || | 516 if (path_manager_info.manager == nullptr || |
517 path_manager_info.state != ACTIVE) { | 517 path_manager_info.state != ACTIVE) { |
518 continue; | 518 continue; |
519 } | 519 } |
520 path_manager_info.manager->OnApplicationLimited(); | 520 path_manager_info.manager->OnApplicationLimited(); |
521 } | 521 } |
522 } | 522 } |
523 | 523 |
| 524 const SendAlgorithmInterface* QuicMultipathSentPacketManager::GetSendAlgorithm() |
| 525 const { |
| 526 QuicSentPacketManagerInterface* path_manager = |
| 527 MaybeGetSentPacketManagerForActivePath(kDefaultPathId); |
| 528 if (path_manager == nullptr) { |
| 529 return nullptr; |
| 530 } |
| 531 return path_manager->GetSendAlgorithm(); |
| 532 } |
| 533 |
524 } // namespace net | 534 } // namespace net |
OLD | NEW |