Modernise BandwidthManager::switchingTimerExpired

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
This commit is contained in:
Claudio Cambra 2023-05-15 15:43:58 +08:00
parent 7d763fa6bc
commit f28a1a368e

View file

@ -332,37 +332,44 @@ void BandwidthManager::relativeDownloadDelayTimerExpired()
void BandwidthManager::switchingTimerExpired() void BandwidthManager::switchingTimerExpired()
{ {
qint64 newUploadLimit = _propagator->_uploadLimit; const auto newUploadLimit = _propagator->_uploadLimit;
if (newUploadLimit != _currentUploadLimit) { if (newUploadLimit != _currentUploadLimit) {
qCInfo(lcBandwidthManager) << "Upload Bandwidth limit changed" << _currentUploadLimit << newUploadLimit; qCInfo(lcBandwidthManager) << "Upload Bandwidth limit changed" << _currentUploadLimit << newUploadLimit;
_currentUploadLimit = newUploadLimit; _currentUploadLimit = newUploadLimit;
Q_FOREACH (UploadDevice *ud, _relativeUploadDeviceList) {
if (newUploadLimit == 0) { for (const auto uploadDevice : _relativeUploadDeviceList) {
ud->setBandwidthLimited(false); Q_ASSERT(uploadDevice);
ud->setChoked(false);
} else if (newUploadLimit > 0) { if (usingAbsoluteUploadLimit()) {
ud->setBandwidthLimited(true); uploadDevice->setBandwidthLimited(true);
ud->setChoked(false); uploadDevice->setChoked(false);
} else if (newUploadLimit < 0) { } else if (usingRelativeUploadLimit()) {
ud->setBandwidthLimited(true); uploadDevice->setBandwidthLimited(true);
ud->setChoked(true); uploadDevice->setChoked(true);
} else {
uploadDevice->setBandwidthLimited(false);
uploadDevice->setChoked(false);
} }
} }
} }
qint64 newDownloadLimit = _propagator->_downloadLimit;
const auto newDownloadLimit = _propagator->_downloadLimit;
if (newDownloadLimit != _currentDownloadLimit) { if (newDownloadLimit != _currentDownloadLimit) {
qCInfo(lcBandwidthManager) << "Download Bandwidth limit changed" << _currentDownloadLimit << newDownloadLimit; qCInfo(lcBandwidthManager) << "Download Bandwidth limit changed" << _currentDownloadLimit << newDownloadLimit;
_currentDownloadLimit = newDownloadLimit; _currentDownloadLimit = newDownloadLimit;
Q_FOREACH (GETFileJob *j, _downloadJobList) {
for (const auto getJob : _downloadJobList) {
Q_ASSERT(getJob);
if (usingAbsoluteDownloadLimit()) { if (usingAbsoluteDownloadLimit()) {
j->setBandwidthLimited(true); getJob->setBandwidthLimited(true);
j->setChoked(false); getJob->setChoked(false);
} else if (usingRelativeDownloadLimit()) { } else if (usingRelativeDownloadLimit()) {
j->setBandwidthLimited(true); getJob->setBandwidthLimited(true);
j->setChoked(true); getJob->setChoked(true);
} else { } else {
j->setBandwidthLimited(false); getJob->setBandwidthLimited(false);
j->setChoked(false); getJob->setChoked(false);
} }
} }
} }