1
0
mirror of https://github.com/d47081/qBittorrent.git synced 2025-01-10 14:57:52 +00:00

Revise Session::getPendingAlerts function signature

This commit is contained in:
Chocobo1 2019-10-27 13:46:52 +08:00
parent e32ef7f5c5
commit a3fd340187
No known key found for this signature in database
GPG Key ID: 210D9C873253A68C
2 changed files with 11 additions and 13 deletions

View File

@ -2195,14 +2195,13 @@ void Session::saveResumeData()
generateResumeData(true); generateResumeData(true);
while (m_numResumeData > 0) { while (m_numResumeData > 0) {
std::vector<lt::alert *> alerts; const std::vector<lt::alert *> alerts = getPendingAlerts(lt::seconds(30));
getPendingAlerts(alerts, 30 * 1000);
if (alerts.empty()) { if (alerts.empty()) {
fprintf(stderr, " aborting with %d outstanding torrents to save resume data for\n", m_numResumeData); fprintf(stderr, " aborting with %d outstanding torrents to save resume data for\n", m_numResumeData);
break; break;
} }
for (const auto a : alerts) { for (const lt::alert *a : alerts) {
switch (a->type()) { switch (a->type()) {
case lt::save_resume_data_failed_alert::alert_type: case lt::save_resume_data_failed_alert::alert_type:
case lt::save_resume_data_alert::alert_type: case lt::save_resume_data_alert::alert_type:
@ -3812,13 +3811,14 @@ void Session::handleIPFilterError()
emit IPFilterParsed(true, 0); emit IPFilterParsed(true, 0);
} }
void Session::getPendingAlerts(std::vector<lt::alert *> &out, const ulong time) std::vector<lt::alert *> Session::getPendingAlerts(const lt::time_duration time) const
{ {
Q_ASSERT(out.empty()); if (time > lt::time_duration::zero())
m_nativeSession->wait_for_alert(time);
if (time > 0) std::vector<lt::alert *> alerts;
m_nativeSession->wait_for_alert(lt::milliseconds(time)); m_nativeSession->pop_alerts(&alerts);
m_nativeSession->pop_alerts(&out); return alerts;
} }
bool Session::isCreateTorrentSubfolder() const bool Session::isCreateTorrentSubfolder() const
@ -3834,10 +3834,8 @@ void Session::setCreateTorrentSubfolder(const bool value)
// Read alerts sent by the BitTorrent session // Read alerts sent by the BitTorrent session
void Session::readAlerts() void Session::readAlerts()
{ {
std::vector<lt::alert *> alerts; const std::vector<lt::alert *> alerts = getPendingAlerts();
getPendingAlerts(alerts); for (const lt::alert *a : alerts)
for (const auto a : alerts)
handleAlert(a); handleAlert(a);
} }

View File

@ -568,7 +568,7 @@ namespace BitTorrent
void saveTorrentsQueue(); void saveTorrentsQueue();
void removeTorrentsQueue(); void removeTorrentsQueue();
void getPendingAlerts(std::vector<lt::alert *> &out, ulong time = 0); std::vector<lt::alert *> getPendingAlerts(lt::time_duration time = lt::time_duration::zero()) const;
// BitTorrent // BitTorrent
lt::session *m_nativeSession = nullptr; lt::session *m_nativeSession = nullptr;