diff options
| author | Amlal El Mahrouss <amlal@nekernel.org> | 2025-11-19 03:42:46 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-11-19 03:42:46 +0100 |
| commit | 3bc2fca2c9beff13586b8bf3089ce439acb09de1 (patch) | |
| tree | 4cf13eb975ef8a133ca0b28de29814c94f7daccc /dev/lib/net/url.hpp | |
| parent | c9fd682f3662e0eec09de49a36a4ea199656da34 (diff) | |
| parent | b0292253ca9732b228ef505e3e719ae05c07c10c (diff) | |
Merge pull request #12 from amlel-el-mahrouss/develop
New OCL Distrib helpers.
Diffstat (limited to 'dev/lib/net/url.hpp')
| -rw-r--r-- | dev/lib/net/url.hpp | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/dev/lib/net/url.hpp b/dev/lib/net/url.hpp index b77e790..e4eca2a 100644 --- a/dev/lib/net/url.hpp +++ b/dev/lib/net/url.hpp @@ -33,6 +33,7 @@ namespace ocl::net { url_protocol m_protocol_{url_protocol::invalid}; std::basic_stringstream<char_type> m_ss_{}; + std::basic_string<char_type> m_port_{""}; public: explicit basic_url(const std::basic_string<char_type>& protocol) @@ -65,6 +66,12 @@ namespace ocl::net if (in.empty()) return *this; + if (in.starts_with(":")) + { + m_port_ = in.substr(1); + return *this; + } + m_ss_ += in; return *this; } @@ -81,14 +88,21 @@ namespace ocl::net } public: - bool protocol_exists() + auto protocol() const noexcept { - return this->m_protocol_ != url_protocol::bad || this->m_protocol_ != url_protocol::invalid; + return this->m_protocol_; } - bool is_valid() + auto port() const noexcept { - return m_ss_.size() > 0 && this->protocol_exists(); + return this->m_port_; + } + + auto is_valid() const noexcept + { + return m_ss_.size() > 0 && this->m_protocol_ != url_protocol::bad || this->m_protocol_ != url_protocol::invalid; } }; + + using url = basic_url<char>; } // namespace ocl::net |
