17 SockAddress()
noexcept =
default;
20 SockAddress( AddressFamily family, std::string_view address,
unsigned short port);
23 SockAddress( AddressFamily family,
unsigned short port);
26 explicit SockAddress( std::string_view path);
28 sockaddr* data()
noexcept;
29 const sockaddr* data()
const noexcept;
30 socklen_t length()
const noexcept;
32 sa_family_t family()
const noexcept;
33 bool empty()
const noexcept;
37 socklen_t* lengthPtr()
noexcept;
40 unsigned short port()
const noexcept;
42 std::string address()
const;
44 static sa_family_t nativeFamily(AddressFamily family)
noexcept;
48 void store(
const T& address, socklen_t length)
noexcept
50 static_assert(
sizeof(T) <=
sizeof(sockaddr_storage));
51 static_assert(
alignof(T) <=
alignof(sockaddr_storage));
54 std::memcpy( &m_storage, &address,
sizeof(address));
58 sockaddr_storage m_storage{};
59 socklen_t m_length =
sizeof(m_storage);