1#ifndef NEFORCE_NETWORK_UTIL_PORTS_HPP__
2#define NEFORCE_NETWORK_UTIL_PORTS_HPP__
13NEFORCE_BEGIN_NAMESPACE__
177 constexpr ports() noexcept = default;
207 constexpr uint16_t value() const noexcept {
return static_cast<uint16_t>(port); }
221 return p >= 1024 && p <= 49151;
260NEFORCE_NODISCARD NEFORCE_ALWAYS_INLINE_INLINE
constexpr bool operator==(
const ports lhs,
const uint16_t rhs)
noexcept {
261 return lhs.port ==
static_cast<ports::raw>(rhs);
264NEFORCE_NODISCARD NEFORCE_ALWAYS_INLINE_INLINE
constexpr bool operator==(
const uint16_t lhs,
const ports rhs)
noexcept {
265 return static_cast<ports::raw>(lhs) == rhs.port;
268NEFORCE_NODISCARD NEFORCE_ALWAYS_INLINE_INLINE
constexpr bool operator==(
const ports lhs,
270 return lhs.port == rhs;
274 const ports rhs)
noexcept {
275 return lhs == rhs.port;
278NEFORCE_NODISCARD NEFORCE_ALWAYS_INLINE_INLINE
constexpr bool operator==(
const ports lhs,
const ports rhs)
noexcept {
279 return lhs.port == rhs.port;
282NEFORCE_NODISCARD NEFORCE_ALWAYS_INLINE_INLINE
constexpr bool operator!=(
const ports lhs,
const uint16_t rhs)
noexcept {
283 return lhs.port !=
static_cast<ports::raw>(rhs);
286NEFORCE_NODISCARD NEFORCE_ALWAYS_INLINE_INLINE
constexpr bool operator!=(
const uint16_t lhs,
const ports rhs)
noexcept {
287 return static_cast<ports::raw>(lhs) != rhs.port;
290NEFORCE_NODISCARD NEFORCE_ALWAYS_INLINE_INLINE
constexpr bool operator!=(
const ports lhs,
292 return lhs.port != rhs;
296 const ports rhs)
noexcept {
297 return lhs != rhs.port;
300NEFORCE_NODISCARD NEFORCE_ALWAYS_INLINE_INLINE
constexpr bool operator!=(
const ports lhs,
const ports rhs)
noexcept {
301 return lhs.port != rhs.port;
308NEFORCE_END_NAMESPACE__
unsigned short uint16_t
16位无符号整数类型
bool operator!=(const function< Res(Args...)> &f, nullptr_t np) noexcept
不等于空指针比较
bool operator==(const function< Res(Args...)> &f, nullptr_t np) noexcept
等于空指针比较
basic_string_view< char > string_view
字符字符串视图
constexpr bool is_well_known() const noexcept
检查端口是否在知名端口范围内
constexpr ports(const uint16_t port) noexcept
从uint16_t构造
constexpr bool is_registered() const noexcept
检查端口是否在注册端口范围内
@ POSTGRESQL
PostgreSQL数据库端口
@ WS
WebSocket协议端口(与HTTP共用)
@ WSS
WebSocket Secure端口(与HTTPS共用)
string to_string() const
转换为协议名称字符串
string to_string(bool is_ws) const
转换为协议名称字符串(支持WebSocket)
constexpr ports() noexcept=default
默认构造函数
constexpr bool is_dynamic() const noexcept
检查端口是否在动态/私有端口范围内
static ports parse(string_view scheme) noexcept
从协议名称解析端口