diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2013-07-04 00:13:15 +0900 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2013-07-04 00:13:15 +0900 |
| commit | cb205a207ce6c2f4e01247e2270e2fe687062a23 (patch) | |
| tree | fc817dfc1c9f178995504db68fc8977fa52833d3 /src/HttpRequestCommand.cc | |
| parent | 9a38c102dc4ff4a0a7cc96ccef7cd1400f37eea5 (diff) | |
Use std::unique_ptr for HttpRequest instead of std::shared_ptr
Diffstat (limited to 'src/HttpRequestCommand.cc')
| -rw-r--r-- | src/HttpRequestCommand.cc | 44 |
1 files changed, 19 insertions, 25 deletions
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<HttpRequest> +std::unique_ptr<HttpRequest> createHttpRequest(const std::shared_ptr<Request>& req, const std::shared_ptr<FileEntry>& fileEntry, const std::shared_ptr<Segment>& segment, @@ -92,7 +92,7 @@ createHttpRequest(const std::shared_ptr<Request>& req, const std::shared_ptr<Request>& proxyRequest, int64_t endOffset = 0) { - std::shared_ptr<HttpRequest> httpRequest(new HttpRequest()); + auto httpRequest = make_unique<HttpRequest>(); 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> httpRequest - (createHttpRequest(getRequest(), - getFileEntry(), - std::shared_ptr<Segment>(), - getOption(), - getRequestGroup(), - getDownloadEngine(), - proxyRequest_)); + auto httpRequest = createHttpRequest(getRequest(), + getFileEntry(), + std::shared_ptr<Segment>(), + 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<std::shared_ptr<Segment> >::const_iterator itr = - getSegments().begin(), eoi = getSegments().end(); - itr != eoi; ++itr) { - const std::shared_ptr<Segment>& 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<int64_t>(segment->getSegmentLength())*nextIndex)); } - std::shared_ptr<HttpRequest> httpRequest - (createHttpRequest(getRequest(), - getFileEntry(), - segment, - getOption(), - getRequestGroup(), - getDownloadEngine(), - proxyRequest_, - endOffset)); - httpConnection_->sendRequest(httpRequest); + httpConnection_->sendRequest(createHttpRequest(getRequest(), + getFileEntry(), + segment, + getOption(), + getRequestGroup(), + getDownloadEngine(), + proxyRequest_, + endOffset)); } } } |
