1#ifndef IV_SRC_COMMS_SOCKET_ADDRESS_HPP_
2#define IV_SRC_COMMS_SOCKET_ADDRESS_HPP_
29 if constexpr (std::is_same<T, sockaddr_in>::value)
33 if (inet_pton(AF_INET, address, &
m_sockaddr->sin_addr) <= 0)
35 throw std::runtime_error(
"Invalid address");
38 else if constexpr (std::is_same<T, sockaddr_in6>::value)
42 if (inet_pton(AF_INET6, address, &
m_sockaddr->sin6_addr) <= 0)
44 throw std::runtime_error(
"Invalid address");
49 throw std::runtime_error(
"Invalid address family");
58 return reinterpret_cast<sockaddr *
>(
m_sockaddr.get());
73 return sizeof(*m_sockaddr);
Definition CSocketAddress.hpp:18
std::string getAddress() const
Definition address.hpp:61
uint16_t getPort() const
Definition address.hpp:66
socklen_t size() const
Definition address.hpp:71
SocketAddress(std::string_view address, uint16_t port)
Definition address.hpp:23
std::unique_ptr< T > m_sockaddr
Definition address.hpp:17
sockaddr * getSocketAddress() const
Definition address.hpp:56
sa_family_t getFamily() const
Definition address.hpp:76
std::string m_address
Definition address.hpp:19
sa_family_t m_family
Definition address.hpp:18
uint16_t m_port
Definition address.hpp:20
Definition address.hpp:12