mirror of https://github.com/aria2/aria2
2010-09-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Store last error of removed download result so that it can be used as exit status. * src/RequestGroupMan.ccpull/1/head
parent
f26685ded1
commit
cb796432ec
|
@ -1,3 +1,9 @@
|
||||||
|
2010-09-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
|
||||||
|
|
||||||
|
Store last error of removed download result so that it can be used
|
||||||
|
as exit status.
|
||||||
|
* src/RequestGroupMan.cc
|
||||||
|
|
||||||
2010-09-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
|
2010-09-10 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
|
||||||
|
|
||||||
Added --max-download-result=NUM option. This option sets maximum
|
Added --max-download-result=NUM option. This option sets maximum
|
||||||
|
|
|
@ -517,7 +517,7 @@ void RequestGroupMan::fillRequestGroupFromReserver(DownloadEngine* e)
|
||||||
logger_->debug("Commands deleted");
|
logger_->debug("Commands deleted");
|
||||||
}
|
}
|
||||||
groupToAdd->releaseRuntimeResource(e);
|
groupToAdd->releaseRuntimeResource(e);
|
||||||
downloadResults_.push_back(groupToAdd->createDownloadResult());
|
addDownloadResult(groupToAdd->createDownloadResult());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(!temp.empty()) {
|
if(!temp.empty()) {
|
||||||
|
@ -559,9 +559,9 @@ void RequestGroupMan::closeFile()
|
||||||
RequestGroupMan::DownloadStat RequestGroupMan::getDownloadStat() const
|
RequestGroupMan::DownloadStat RequestGroupMan::getDownloadStat() const
|
||||||
{
|
{
|
||||||
size_t finished = 0;
|
size_t finished = 0;
|
||||||
size_t error = 0;
|
size_t error = removedErrorResult_;
|
||||||
size_t inprogress = 0;
|
size_t inprogress = 0;
|
||||||
downloadresultcode::RESULT lastError = downloadresultcode::FINISHED;
|
downloadresultcode::RESULT lastError = removedLastErrorResult_;
|
||||||
for(std::deque<SharedHandle<DownloadResult> >::const_iterator itr =
|
for(std::deque<SharedHandle<DownloadResult> >::const_iterator itr =
|
||||||
downloadResults_.begin(), eoi = downloadResults_.end();
|
downloadResults_.begin(), eoi = downloadResults_.end();
|
||||||
itr != eoi; ++itr) {
|
itr != eoi; ++itr) {
|
||||||
|
@ -772,14 +772,33 @@ void RequestGroupMan::addDownloadResult(const SharedHandle<DownloadResult>& dr)
|
||||||
{
|
{
|
||||||
if(maxDownloadResult_ == 0) {
|
if(maxDownloadResult_ == 0) {
|
||||||
if(!downloadResults_.empty()) {
|
if(!downloadResults_.empty()) {
|
||||||
|
for(std::deque<SharedHandle<DownloadResult> >::iterator i =
|
||||||
|
downloadResults_.begin(), eoi = downloadResults_.end(); i != eoi;
|
||||||
|
++i) {
|
||||||
|
if((*i)->result != downloadresultcode::FINISHED) {
|
||||||
|
removedLastErrorResult_ = (*i)->result;
|
||||||
|
++removedErrorResult_;
|
||||||
|
}
|
||||||
|
}
|
||||||
downloadResults_.clear();
|
downloadResults_.clear();
|
||||||
}
|
}
|
||||||
|
if(dr->result != downloadresultcode::FINISHED) {
|
||||||
|
removedLastErrorResult_ = dr->result;
|
||||||
|
++removedErrorResult_;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
size_t curSize = downloadResults_.size();
|
size_t curSize = downloadResults_.size();
|
||||||
if(curSize >= maxDownloadResult_) {
|
if(curSize >= maxDownloadResult_) {
|
||||||
downloadResults_.erase
|
std::deque<SharedHandle<DownloadResult> >::iterator last =
|
||||||
(downloadResults_.begin(),
|
downloadResults_.begin()+curSize-maxDownloadResult_+1;
|
||||||
downloadResults_.begin()+curSize-maxDownloadResult_+1);
|
for(std::deque<SharedHandle<DownloadResult> >::iterator i =
|
||||||
|
downloadResults_.begin(); i != last; ++i) {
|
||||||
|
if((*i)->result != downloadresultcode::FINISHED) {
|
||||||
|
removedLastErrorResult_ = (*i)->result;
|
||||||
|
++removedErrorResult_;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
downloadResults_.erase(downloadResults_.begin(), last);
|
||||||
}
|
}
|
||||||
downloadResults_.push_back(dr);
|
downloadResults_.push_back(dr);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue