46#ifndef __sockpp_inet6_addr_h
47#define __sockpp_inet6_addr_h
70 static constexpr size_t SZ =
sizeof(sockaddr_in6);
88 const in6_addr ANY IN6ADDR_ANY_INIT;
108 std::memcpy(&addr_, &addr, SZ);
122 std::memcpy(&addr_, &addr, SZ);
135 const in6_addr LOOPBACK IN6ADDR_LOOPBACK_INIT;
159 void create(
const in6_addr& addr, in_port_t
port);
172 in6_addr
address()
const {
return addr_.sin6_addr; }
183 return addr_.sin6_addr.s6_addr[i];
189 in_port_t
port()
const {
return ntohs(addr_.sin6_port); }
196 socklen_t
size()
const override {
return socklen_t(SZ); }
202 return reinterpret_cast<const sockaddr*
>(&addr_);
209 return reinterpret_cast<sockaddr*
>(&addr_);
Definition inet6_address.h:65
in6_addr address() const
Definition inet6_address.h:172
static inet6_address loopback(in_port_t port)
Definition inet6_address.h:134
sockaddr_in6 * sockaddr_in6_ptr()
Definition inet6_address.h:221
std::string to_string() const
Definition inet6_address.cpp:107
inet6_address(const std::string &saddr, in_port_t port)
Definition inet6_address.h:98
bool is_set() const
Definition inet6_address.cpp:46
inet6_address(const inet6_address &addr)
Definition inet6_address.h:128
inet6_address()
Definition inet6_address.h:80
static in6_addr resolve_name(const std::string &saddr)
Definition inet6_address.cpp:54
void create(const in6_addr &addr, in_port_t port)
Definition inet6_address.cpp:85
const sockaddr * sockaddr_ptr() const override
Definition inet6_address.h:201
inet6_address(const sockaddr_in6 &addr)
Definition inet6_address.h:121
socklen_t size() const override
Definition inet6_address.h:196
in_port_t port() const
Definition inet6_address.h:189
inet6_address(const sockaddr_storage &addr)
Definition inet6_address.h:107
const sockaddr_in6 * sockaddr_in6_ptr() const
Definition inet6_address.h:216
sockaddr * sockaddr_ptr() override
Definition inet6_address.h:208
static constexpr sa_family_t ADDRESS_FAMILY
Definition inet6_address.h:74
uint8_t operator[](int i) const
Definition inet6_address.h:182
void create(const std::string &saddr, in_port_t port)
inet6_address(in_port_t port)
Definition inet6_address.h:87
inet6_address(const sock_address &addr)
Definition inet6_address.h:114
Definition sock_address.h:65
virtual sockaddr * sockaddr_ptr()=0