Reuse alert dispatcher

Instead of using a specific alert handler in `SessionImpl::saveResumeData()`, reuse the generic
one.
This commit is contained in:
Chocobo1 2022-10-17 02:21:03 +08:00
parent a44bca3f07
commit c94152c47c
No known key found for this signature in database
GPG key ID: 210D9C873253A68C
3 changed files with 18 additions and 10 deletions

View file

@ -2444,6 +2444,12 @@ void SessionImpl::handleTorrentSaveResumeDataRequested(const TorrentImpl *torren
++m_numResumeData;
}
void SessionImpl::handleTorrentSaveResumeDataFailed(const TorrentImpl *torrent)
{
Q_UNUSED(torrent);
--m_numResumeData;
}
QVector<Torrent *> SessionImpl::torrents() const
{
QVector<Torrent *> result;
@ -2904,16 +2910,12 @@ void SessionImpl::saveResumeData()
bool hasWantedAlert = false;
for (const lt::alert *a : alerts)
{
switch (a->type())
if (const int alertType = a->type();
(alertType == lt::save_resume_data_alert::alert_type)
|| (alertType == lt::save_resume_data_failed_alert::alert_type))
{
case lt::save_resume_data_failed_alert::alert_type:
hasWantedAlert = true;
--m_numResumeData;
break;
case lt::save_resume_data_alert::alert_type:
hasWantedAlert = true;
dispatchTorrentAlert(static_cast<const lt::torrent_alert *>(a));
break;
handleAlert(a);
}
}

View file

@ -410,6 +410,7 @@ namespace BitTorrent
// Torrent interface
void handleTorrentNeedSaveResumeData(const TorrentImpl *torrent);
void handleTorrentSaveResumeDataRequested(const TorrentImpl *torrent);
void handleTorrentSaveResumeDataFailed(const TorrentImpl *torrent);
void handleTorrentShareLimitChanged(TorrentImpl *const torrent);
void handleTorrentNameChanged(TorrentImpl *const torrent);
void handleTorrentSavePathChanged(TorrentImpl *const torrent);

View file

@ -1949,8 +1949,13 @@ void TorrentImpl::prepareResumeData(const lt::add_torrent_params &params)
void TorrentImpl::handleSaveResumeDataFailedAlert(const lt::save_resume_data_failed_alert *p)
{
Q_UNUSED(p);
Q_ASSERT_X(false, Q_FUNC_INFO, "This point should be unreachable since libtorrent 1.2.11");
if (p->error != lt::errors::resume_data_not_modified)
{
LogMsg(tr("Generate resume data failed. Torrent: \"%1\". Reason: \"%2\"")
.arg(name(), QString::fromLocal8Bit(p->error.message().c_str())), Log::CRITICAL);
}
m_session->handleTorrentSaveResumeDataFailed(this);
}
void TorrentImpl::handleFastResumeRejectedAlert(const lt::fastresume_rejected_alert *p)