From f4ac2c21856bc052d14c7d4f68d06fe5854e3d5e Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Mon, 19 May 2008 11:19:18 +0000 Subject: [PATCH] 2008-05-19 Tatsuhiro Tsujikawa Returns const reference. The internal urlencode function was optimized a little bit. * src/Request.cc * src/Request.h * src/HttpRequest.cc * src/HttpRequest.h --- ChangeLog | 9 +++++++++ src/HttpRequest.cc | 16 ++++++++-------- src/HttpRequest.h | 16 ++++++++-------- src/Request.cc | 13 +++++++------ src/Request.h | 20 ++++++++++---------- 5 files changed, 42 insertions(+), 32 deletions(-) diff --git a/ChangeLog b/ChangeLog index 08c175d3b..668a8662f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2008-05-19 Tatsuhiro Tsujikawa + + Returns const reference. The internal urlencode function was optimized + a little bit. + * src/Request.cc + * src/Request.h + * src/HttpRequest.cc + * src/HttpRequest.h + 2008-05-19 Tatsuhiro Tsujikawa Defined option name and possible values as std::string to reduce diff --git a/src/HttpRequest.cc b/src/HttpRequest.cc index 38071e4b0..7940315de 100644 --- a/src/HttpRequest.cc +++ b/src/HttpRequest.cc @@ -256,12 +256,12 @@ void HttpRequest::configure(const Option* option) proxyAuthEnabled = option->getAsBool(PREF_HTTP_PROXY_AUTH_ENABLED); } -std::string HttpRequest::getPreviousURI() const +const std::string& HttpRequest::getPreviousURI() const { return request->getPreviousUrl(); } -std::string HttpRequest::getHost() const +const std::string& HttpRequest::getHost() const { return request->getHost(); } @@ -271,32 +271,32 @@ uint16_t HttpRequest::getPort() const return request->getPort(); } -std::string HttpRequest::getMethod() const +const std::string& HttpRequest::getMethod() const { return request->getMethod(); } -std::string HttpRequest::getProtocol() const +const std::string& HttpRequest::getProtocol() const { return request->getProtocol(); } -std::string HttpRequest::getCurrentURI() const +const std::string& HttpRequest::getCurrentURI() const { return request->getCurrentUrl(); } -std::string HttpRequest::getDir() const +const std::string& HttpRequest::getDir() const { return request->getDir(); } -std::string HttpRequest::getFile() const +const std::string& HttpRequest::getFile() const { return request->getFile(); } -std::string HttpRequest::getQuery() const +const std::string& HttpRequest::getQuery() const { return request->getQuery(); } diff --git a/src/HttpRequest.h b/src/HttpRequest.h index 5b6a27481..ba5c55a95 100644 --- a/src/HttpRequest.h +++ b/src/HttpRequest.h @@ -96,23 +96,23 @@ public: return entityLength; } - std::string getHost() const; + const std::string& getHost() const; uint16_t getPort() const; - std::string getMethod() const; + const std::string& getMethod() const; - std::string getProtocol() const; + const std::string& getProtocol() const; - std::string getCurrentURI() const; + const std::string& getCurrentURI() const; - std::string getDir() const; + const std::string& getDir() const; - std::string getFile() const; + const std::string& getFile() const; - std::string getQuery() const; + const std::string& getQuery() const; - std::string getPreviousURI() const; + const std::string& getPreviousURI() const; SharedHandle getRange() const; diff --git a/src/Request.cc b/src/Request.cc index 17dee95c0..aa66e2fa4 100644 --- a/src/Request.cc +++ b/src/Request.cc @@ -85,9 +85,9 @@ bool Request::parseUrl(const std::string& url) { std::string tempUrl; std::string::size_type sharpIndex = url.find("#"); if(sharpIndex != std::string::npos) { - tempUrl = urlencode(url.substr(0, sharpIndex)); + urlencode(tempUrl, url.substr(0, sharpIndex)); } else { - tempUrl = urlencode(url); + urlencode(tempUrl, url); } currentUrl = tempUrl; std::string query; @@ -173,13 +173,14 @@ bool Request::isHexNumber(const char c) const return ('0' <= c && c <= '9') || ('A' <= c && c <= 'F') || ('a' <= c && c <= 'f'); } -std::string Request::urlencode(const std::string& src) const +void Request::urlencode(std::string& result, const std::string& src) const { if(src.empty()) { - return A2STR::NIL; + result = A2STR::NIL; + return; } size_t lastIndex = src.size()-1; - std::string result = src+" "; + result = src+" "; size_t index = lastIndex; while(index-- > 0) { const char c = result[index]; @@ -194,7 +195,7 @@ std::string Request::urlencode(const std::string& src) const } } } - return result.substr(0, result.size()-2); + result.erase(result.size()-2); } } // namespace aria2 diff --git a/src/Request.h b/src/Request.h index 7ab2fec12..8cc397e46 100644 --- a/src/Request.h +++ b/src/Request.h @@ -90,7 +90,7 @@ private: bool isHexNumber(const char c) const; - std::string urlencode(const std::string& src) const; + void urlencode(std::string& result, const std::string& src) const; public: SharedHandle cookieBox; @@ -111,17 +111,17 @@ public: unsigned int getTryCount() const { return tryCount; } //bool noMoreTry() const { return tryCount >= PREF_MAX_TRY; } - std::string getUrl() const { return url; } - std::string getCurrentUrl() const { return currentUrl; } - std::string getPreviousUrl() const { return previousUrl; } - std::string getReferer() const { return referer; } + const std::string& getUrl() const { return url; } + const std::string& getCurrentUrl() const { return currentUrl; } + const std::string& getPreviousUrl() const { return previousUrl; } + const std::string& getReferer() const { return referer; } void setReferer(const std::string& url) { referer = previousUrl = url; } - std::string getProtocol() const { return protocol; } - std::string getHost() const { return host; } + const std::string& getProtocol() const { return protocol; } + const std::string& getHost() const { return host; } uint16_t getPort() const { return port; } - std::string getDir() const { return dir; } - std::string getFile() const { return file;} - std::string getQuery() const { return _query; } + const std::string& getDir() const { return dir; } + const std::string& getFile() const { return file;} + const std::string& getQuery() const { return _query; } void supportsPersistentConnection(bool f) {