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/HttpConnection.cc | |
| parent | 9a38c102dc4ff4a0a7cc96ccef7cd1400f37eea5 (diff) | |
Use std::unique_ptr for HttpRequest instead of std::shared_ptr
Diffstat (limited to 'src/HttpConnection.cc')
| -rw-r--r-- | src/HttpConnection.cc | 32 |
1 files changed, 13 insertions, 19 deletions
diff --git a/src/HttpConnection.cc b/src/HttpConnection.cc index f3925295..42ca5d7f 100644 --- a/src/HttpConnection.cc +++ b/src/HttpConnection.cc @@ -62,12 +62,15 @@ namespace aria2 { HttpRequestEntry::HttpRequestEntry -(const std::shared_ptr<HttpRequest>& httpRequest) - : httpRequest_{httpRequest}, +(std::unique_ptr<HttpRequest> httpRequest) + : httpRequest_{std::move(httpRequest)}, proc_{make_unique<HttpHeaderProcessor>(HttpHeaderProcessor::CLIENT_PARSER)} {} -HttpRequestEntry::~HttpRequestEntry() {} +std::unique_ptr<HttpRequest> HttpRequestEntry::popHttpRequest() +{ + return std::move(httpRequest_); +} const std::unique_ptr<HttpHeaderProcessor>& HttpRequestEntry::getHttpHeaderProcessor() const @@ -106,7 +109,7 @@ std::string HttpConnection::eraseConfidentialInfo(const std::string& request) } void HttpConnection::sendRequest -(const std::shared_ptr<HttpRequest>& httpRequest, std::string request) +(std::unique_ptr<HttpRequest> httpRequest, std::string request) { A2_LOG_INFO(fmt(MSG_SENDING_REQUEST, cuid_, @@ -114,19 +117,19 @@ void HttpConnection::sendRequest socketBuffer_.pushStr(std::move(request)); socketBuffer_.send(); outstandingHttpRequests_.push_back(make_unique<HttpRequestEntry> - (httpRequest)); + (std::move(httpRequest))); } void HttpConnection::sendRequest -(const std::shared_ptr<HttpRequest>& httpRequest) +(std::unique_ptr<HttpRequest> httpRequest) { - sendRequest(httpRequest, httpRequest->createRequest()); + sendRequest(std::move(httpRequest), httpRequest->createRequest()); } void HttpConnection::sendProxyRequest -(const std::shared_ptr<HttpRequest>& httpRequest) +(std::unique_ptr<HttpRequest> httpRequest) { - sendRequest(httpRequest, httpRequest->createProxyRequest()); + sendRequest(std::move(httpRequest), httpRequest->createProxyRequest()); } std::unique_ptr<HttpResponse> HttpConnection::receiveResponse() @@ -150,7 +153,7 @@ std::unique_ptr<HttpResponse> HttpConnection::receiveResponse() httpResponse->setCuid(cuid_); httpResponse->setHttpHeader(proc->getResult()); httpResponse->setHttpRequest(outstandingHttpRequests_.front()-> - getHttpRequest()); + popHttpRequest()); socketRecvBuffer_->shiftBuffer(proc->getLastBytesProcessed()); outstandingHttpRequests_.pop_front(); return httpResponse; @@ -170,15 +173,6 @@ bool HttpConnection::isIssued(const std::shared_ptr<Segment>& segment) const return false; } -std::shared_ptr<HttpRequest> HttpConnection::getFirstHttpRequest() const -{ - if(outstandingHttpRequests_.empty()) { - return std::shared_ptr<HttpRequest>(); - } else { - return outstandingHttpRequests_.front()->getHttpRequest(); - } -} - bool HttpConnection::sendBufferIsEmpty() const { return socketBuffer_.sendBufferIsEmpty(); |
