2008-05-19 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>

Returns const reference. The internal urlencode function was 
optimized
	a little bit.
	* src/Request.cc
	* src/Request.h
	* src/HttpRequest.cc
	* src/HttpRequest.h
pull/1/head
Tatsuhiro Tsujikawa 2008-05-19 11:19:18 +00:00
parent 0189bbc6bc
commit f4ac2c2185
5 changed files with 42 additions and 32 deletions

View File

@ -1,3 +1,12 @@
2008-05-19 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
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 <tujikawa at rednoah dot com>
Defined option name and possible values as std::string to reduce

View File

@ -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();
}

View File

@ -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<Range> getRange() const;

View File

@ -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

View File

@ -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> 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)
{