diff options
author | Richard Walters <rwalters@digitalstirling.com> | 2018-07-02 21:21:48 -0700 |
---|---|---|
committer | Richard Walters <rwalters@digitalstirling.com> | 2018-07-02 21:21:48 -0700 |
commit | 1af6861f8db57b54ba19b80964eb00c5f7340bfb (patch) | |
tree | fe836a46b281a41cbee62a3519a80c73264f2b8a /src/Uri.cpp | |
parent | 6974150a2c6b3b4e0fa278b08de8b2647d2c95ed (diff) |
Add capability to compare Uri objects.
* Code the neat example in section 6.2.2 of the RFC.
* Add equality/inequality operators for Uri.
Diffstat (limited to 'src/Uri.cpp')
-rw-r--r-- | src/Uri.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/Uri.cpp b/src/Uri.cpp index 0153e5f..35631cf 100644 --- a/src/Uri.cpp +++ b/src/Uri.cpp @@ -586,6 +586,28 @@ namespace Uri { { } + bool Uri::operator==(const Uri& other) const { + return ( + (impl_->scheme == other.impl_->scheme) + && (impl_->userInfo == other.impl_->userInfo) + && (impl_->host == other.impl_->host) + && ( + (!impl_->hasPort && !other.impl_->hasPort) + || ( + (impl_->hasPort && other.impl_->hasPort) + && (impl_->port == other.impl_->port) + ) + ) + && (impl_->path == other.impl_->path) + && (impl_->query == other.impl_->query) + && (impl_->fragment == other.impl_->fragment) + ); + } + + bool Uri::operator!=(const Uri& other) const { + return !(*this == other); + } + bool Uri::ParseFromString(const std::string& uriString) { // First parse the scheme. // Limit our search so we don't scan into the authority |