Replaced RequestGroup::lastUriResult_ with

RequestGroup::lastErrorCode_.
pull/1/head
Tatsuhiro Tsujikawa 2010-11-28 17:00:30 +09:00
parent 947967fc63
commit d316a00ade
4 changed files with 12 additions and 15 deletions

View File

@ -263,7 +263,7 @@ bool AbstractCommand::execute() {
DL_ABORT_EX2(fmt("URI=%s", req_->getCurrentUri().c_str()), DL_ABORT_EX2(fmt("URI=%s", req_->getCurrentUri().c_str()),
err)); err));
fileEntry_->addURIResult(req_->getUri(), err.getCode()); fileEntry_->addURIResult(req_->getUri(), err.getCode());
requestGroup_->setLastUriResult(req_->getUri(), err.getCode()); requestGroup_->setLastErrorCode(err.getCode());
if(err.getCode() == error_code::CANNOT_RESUME) { if(err.getCode() == error_code::CANNOT_RESUME) {
requestGroup_->increaseResumeFailureCount(); requestGroup_->increaseResumeFailureCount();
} }
@ -291,7 +291,7 @@ bool AbstractCommand::execute() {
req_->getUri().c_str()), req_->getUri().c_str()),
err); err);
fileEntry_->addURIResult(req_->getUri(), err.getCode()); fileEntry_->addURIResult(req_->getUri(), err.getCode());
requestGroup_->setLastUriResult(req_->getUri(), err.getCode()); requestGroup_->setLastErrorCode(err.getCode());
if(err.getCode() == error_code::CANNOT_RESUME) { if(err.getCode() == error_code::CANNOT_RESUME) {
requestGroup_->increaseResumeFailureCount(); requestGroup_->increaseResumeFailureCount();
} }
@ -305,7 +305,7 @@ bool AbstractCommand::execute() {
A2_LOG_ERROR_EX(EX_EXCEPTION_CAUGHT, err); A2_LOG_ERROR_EX(EX_EXCEPTION_CAUGHT, err);
if(req_) { if(req_) {
fileEntry_->addURIResult(req_->getUri(), err.getCode()); fileEntry_->addURIResult(req_->getUri(), err.getCode());
requestGroup_->setLastUriResult(req_->getUri(), err.getCode()); requestGroup_->setLastErrorCode(err.getCode());
} }
requestGroup_->setHaltRequested(true); requestGroup_->setHaltRequested(true);
return true; return true;

View File

@ -146,6 +146,7 @@ RequestGroup::RequestGroup(const SharedHandle<Option>& option)
inMemoryDownload_(false), inMemoryDownload_(false),
maxDownloadSpeedLimit_(option->getAsInt(PREF_MAX_DOWNLOAD_LIMIT)), maxDownloadSpeedLimit_(option->getAsInt(PREF_MAX_DOWNLOAD_LIMIT)),
maxUploadSpeedLimit_(option->getAsInt(PREF_MAX_UPLOAD_LIMIT)), maxUploadSpeedLimit_(option->getAsInt(PREF_MAX_UPLOAD_LIMIT)),
lastErrorCode_(error_code::UNDEFINED),
belongsToGID_(0), belongsToGID_(0),
requestGroupMan_(0), requestGroupMan_(0),
resumeFailureCount_(0) resumeFailureCount_(0)
@ -195,7 +196,7 @@ error_code::Value RequestGroup::downloadResult() const
if(downloadFinished() && !downloadContext_->isChecksumVerificationNeeded()) if(downloadFinished() && !downloadContext_->isChecksumVerificationNeeded())
return error_code::FINISHED; return error_code::FINISHED;
else { else {
if(!lastUriResult_) { if(lastErrorCode_ == error_code::UNDEFINED) {
if(haltReason_ == RequestGroup::USER_REQUEST || if(haltReason_ == RequestGroup::USER_REQUEST ||
haltReason_ == RequestGroup::SHUTDOWN_SIGNAL) { haltReason_ == RequestGroup::SHUTDOWN_SIGNAL) {
return error_code::IN_PROGRESS; return error_code::IN_PROGRESS;
@ -203,7 +204,7 @@ error_code::Value RequestGroup::downloadResult() const
return error_code::UNKNOWN_ERROR; return error_code::UNKNOWN_ERROR;
} }
} else { } else {
return lastUriResult_->getResult(); return lastErrorCode_;
} }
} }
} }
@ -1278,12 +1279,6 @@ bool RequestGroup::doesUploadSpeedExceed()
maxUploadSpeedLimit_ < calculateStat().getUploadSpeed(); maxUploadSpeedLimit_ < calculateStat().getUploadSpeed();
} }
void RequestGroup::setLastUriResult
(const std::string uri, error_code::Value result)
{
lastUriResult_.reset(new URIResult(uri, result));
}
void RequestGroup::saveControlFile() const void RequestGroup::saveControlFile() const
{ {
if(saveControlFile_) { if(saveControlFile_) {

View File

@ -155,7 +155,7 @@ private:
unsigned int maxUploadSpeedLimit_; unsigned int maxUploadSpeedLimit_;
SharedHandle<URIResult> lastUriResult_; error_code::Value lastErrorCode_;
// If this download generates another downloads when completed(for // If this download generates another downloads when completed(for
// example, downloads generated by PostDownloadHandler), this field // example, downloads generated by PostDownloadHandler), this field
@ -481,7 +481,10 @@ public:
maxUploadSpeedLimit_ = speed; maxUploadSpeedLimit_ = speed;
} }
void setLastUriResult(std::string uri, error_code::Value result); void setLastErrorCode(error_code::Value code)
{
lastErrorCode_ = code;
}
void saveControlFile() const; void saveControlFile() const;

View File

@ -73,8 +73,7 @@ void RequestGroupTest::testCreateDownloadResult()
CPPUNIT_ASSERT_EQUAL(error_code::IN_PROGRESS, result->result); CPPUNIT_ASSERT_EQUAL(error_code::IN_PROGRESS, result->result);
} }
{ {
group.setLastUriResult group.setLastErrorCode(error_code::RESOURCE_NOT_FOUND);
("http://second/file",error_code::RESOURCE_NOT_FOUND);
SharedHandle<DownloadResult> result = group.createDownloadResult(); SharedHandle<DownloadResult> result = group.createDownloadResult();