47#ifndef __sockpp_inet_addr_h
48#define __sockpp_inet_addr_h
71 static constexpr size_t SZ =
sizeof(sockaddr_in);
113 std::memcpy(&addr_, &addr, SZ);
145 static in_addr_t
resolve_name(
const std::string& saddr);
160 void create(
const std::string& saddr, in_port_t
port);
165 in_addr_t
address()
const {
return ntohl(addr_.sin_addr.s_addr); }
173 return ((
const uint8_t*)&addr)[i];
179 in_port_t
port()
const {
return ntohs(addr_.sin_port); }
186 socklen_t
size()
const override {
return socklen_t(SZ); }
192 return reinterpret_cast<const sockaddr*
>(&addr_);
199 return reinterpret_cast<sockaddr*
>(&addr_);
206 return static_cast<const sockaddr_in*
>(&addr_);
213 return static_cast<sockaddr_in*
>(&addr_);
Definition inet_address.h:66
inet_address(const inet_address &addr)
Definition inet_address.h:131
inet_address()
Definition inet_address.h:81
in_port_t port() const
Definition inet_address.h:179
inet_address(const sock_address &addr)
Definition inet_address.h:119
static in_addr_t resolve_name(const std::string &saddr)
Definition inet_address.cpp:54
socklen_t size() const override
Definition inet_address.h:186
const sockaddr_in * sockaddr_in_ptr() const
Definition inet_address.h:205
std::string to_string() const
Definition inet_address.cpp:104
inet_address(const sockaddr &addr)
Definition inet_address.h:112
bool is_set() const
Definition inet_address.cpp:46
inet_address(uint32_t addr, in_port_t port)
Definition inet_address.h:97
in_addr_t address() const
Definition inet_address.h:165
inet_address(in_port_t port)
Definition inet_address.h:88
uint8_t operator[](int i) const
Definition inet_address.h:171
const sockaddr * sockaddr_ptr() const override
Definition inet_address.h:191
void create(in_addr_t addr, in_port_t port)
inet_address(const std::string &saddr, in_port_t port)
Definition inet_address.h:105
sockaddr * sockaddr_ptr() override
Definition inet_address.h:198
sockaddr_in * sockaddr_in_ptr()
Definition inet_address.h:212
inet_address(const sockaddr_in &addr)
Definition inet_address.h:126
static constexpr sa_family_t ADDRESS_FAMILY
Definition inet_address.h:75
Definition sock_address.h:65
virtual sockaddr * sockaddr_ptr()=0