From cb205a207ce6c2f4e01247e2270e2fe687062a23 Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Thu, 4 Jul 2013 00:13:15 +0900 Subject: Use std::unique_ptr for HttpRequest instead of std::shared_ptr --- src/HttpRequestCommand.cc | 44 +++++++++++++++++++------------------------- 1 file changed, 19 insertions(+), 25 deletions(-) (limited to 'src/HttpRequestCommand.cc') diff --git a/src/HttpRequestCommand.cc b/src/HttpRequestCommand.cc index 34b708a1..c92d2a4f 100644 --- a/src/HttpRequestCommand.cc +++ b/src/HttpRequestCommand.cc @@ -82,7 +82,7 @@ HttpRequestCommand::HttpRequestCommand HttpRequestCommand::~HttpRequestCommand() {} namespace { -std::shared_ptr +std::unique_ptr createHttpRequest(const std::shared_ptr& req, const std::shared_ptr& fileEntry, const std::shared_ptr& segment, @@ -92,7 +92,7 @@ createHttpRequest(const std::shared_ptr& req, const std::shared_ptr& proxyRequest, int64_t endOffset = 0) { - std::shared_ptr httpRequest(new HttpRequest()); + auto httpRequest = make_unique(); httpRequest->setUserAgent(option->get(PREF_USER_AGENT)); httpRequest->setRequest(req); httpRequest->setFileEntry(fileEntry); @@ -135,14 +135,13 @@ bool HttpRequestCommand::executeInternal() { } #endif // ENABLE_SSL if(getSegments().empty()) { - std::shared_ptr httpRequest - (createHttpRequest(getRequest(), - getFileEntry(), - std::shared_ptr(), - getOption(), - getRequestGroup(), - getDownloadEngine(), - proxyRequest_)); + auto httpRequest = createHttpRequest(getRequest(), + getFileEntry(), + std::shared_ptr(), + getOption(), + getRequestGroup(), + getDownloadEngine(), + proxyRequest_); if(getOption()->getAsBool(PREF_CONDITIONAL_GET) && (getRequest()->getProtocol() == "http" || getRequest()->getProtocol() == "https")) { @@ -167,12 +166,9 @@ bool HttpRequestCommand::executeInternal() { } } } - httpConnection_->sendRequest(httpRequest); + httpConnection_->sendRequest(std::move(httpRequest)); } else { - for(std::vector >::const_iterator itr = - getSegments().begin(), eoi = getSegments().end(); - itr != eoi; ++itr) { - const std::shared_ptr& segment = *itr; + for(auto& segment : getSegments()) { if(!httpConnection_->isIssued(segment)) { int64_t endOffset = 0; // FTP via HTTP proxy does not support end byte marker @@ -185,16 +181,14 @@ bool HttpRequestCommand::executeInternal() { getFileEntry()->gtoloff (static_cast(segment->getSegmentLength())*nextIndex)); } - std::shared_ptr httpRequest - (createHttpRequest(getRequest(), - getFileEntry(), - segment, - getOption(), - getRequestGroup(), - getDownloadEngine(), - proxyRequest_, - endOffset)); - httpConnection_->sendRequest(httpRequest); + httpConnection_->sendRequest(createHttpRequest(getRequest(), + getFileEntry(), + segment, + getOption(), + getRequestGroup(), + getDownloadEngine(), + proxyRequest_, + endOffset)); } } } -- cgit