mirror of https://github.com/aria2/aria2
Simplify session serializer
parent
5ea3bcc349
commit
852e2db586
|
@ -277,38 +277,28 @@ bool SessionSerializer::save(IOFile& fp) const
|
||||||
std::set<a2_gid_t> metainfoCache;
|
std::set<a2_gid_t> metainfoCache;
|
||||||
const DownloadResultList& results = rgman_->getDownloadResults();
|
const DownloadResultList& results = rgman_->getDownloadResults();
|
||||||
for (const auto& dr : results) {
|
for (const auto& dr : results) {
|
||||||
if (dr->result == error_code::FINISHED ||
|
auto save = false;
|
||||||
dr->result == error_code::REMOVED) {
|
switch (dr->result) {
|
||||||
if (dr->option->getAsBool(PREF_FORCE_SAVE)) {
|
case error_code::FINISHED:
|
||||||
if (!writeDownloadResult(fp, metainfoCache, dr, false)) {
|
case error_code::REMOVED:
|
||||||
return false;
|
save = dr->option->getAsBool(PREF_FORCE_SAVE);
|
||||||
}
|
break;
|
||||||
}
|
case error_code::IN_PROGRESS:
|
||||||
else {
|
save = saveInProgress_;
|
||||||
continue;
|
break;
|
||||||
}
|
default:
|
||||||
|
save = saveError_;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
else if (dr->result == error_code::IN_PROGRESS) {
|
if (save && !writeDownloadResult(fp, metainfoCache, dr, false)) {
|
||||||
if (saveInProgress_) {
|
return false;
|
||||||
if (!writeDownloadResult(fp, metainfoCache, dr, false)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
// error download
|
|
||||||
if (saveError_) {
|
|
||||||
if (!writeDownloadResult(fp, metainfoCache, dr, false)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
// Save active downloads.
|
// Save active downloads.
|
||||||
const RequestGroupList& groups = rgman_->getRequestGroups();
|
const RequestGroupList& groups = rgman_->getRequestGroups();
|
||||||
for (const auto& rg : groups) {
|
for (const auto& rg : groups) {
|
||||||
std::shared_ptr<DownloadResult> dr = rg->createDownloadResult();
|
auto dr = rg->createDownloadResult();
|
||||||
bool stopped = dr->result == error_code::FINISHED ||
|
bool stopped = dr->result == error_code::FINISHED ||
|
||||||
dr->result == error_code::REMOVED;
|
dr->result == error_code::REMOVED;
|
||||||
if ((!stopped && saveInProgress_) ||
|
if ((!stopped && saveInProgress_) ||
|
||||||
|
@ -321,9 +311,9 @@ bool SessionSerializer::save(IOFile& fp) const
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (saveWaiting_) {
|
if (saveWaiting_) {
|
||||||
const RequestGroupList& groups = rgman_->getReservedGroups();
|
const auto& groups = rgman_->getReservedGroups();
|
||||||
for (const auto& rg : groups) {
|
for (const auto& rg : groups) {
|
||||||
std::shared_ptr<DownloadResult> result = rg->createDownloadResult();
|
auto result = rg->createDownloadResult();
|
||||||
if (!writeDownloadResult(fp, metainfoCache, result,
|
if (!writeDownloadResult(fp, metainfoCache, result,
|
||||||
rg->isPauseRequested())) {
|
rg->isPauseRequested())) {
|
||||||
return false;
|
return false;
|
||||||
|
|
Loading…
Reference in New Issue