Address
Address
#include <icy/net/address.h>class AddressDefined in src/net/include/icy/net/address.h:28
Represents an IPv4 or IPv6 socket address with host and port.
List of all members
| Name | Kind | Owner |
|---|---|---|
operator<< | friend | Declared here |
Address | function | Declared here |
Address | function | Declared here |
Address | function | Declared here |
Address | function | Declared here |
Address | function | Declared here |
Address | function | Declared here |
~Address | function | Declared here |
operator= | function | Declared here |
swap | function | Declared here |
host | function | Declared here |
port | function | Declared here |
length | function | Declared here |
addr | function | Declared here |
af | function | Declared here |
toString | function | Declared here |
family | function | Declared here |
valid | function | Declared here |
operator< | function | Declared here |
operator== | function | Declared here |
operator!= | function | Declared here |
resolveService | function | Declared here |
validateIP | function | Declared here |
init | function | Declared here |
Family | enum | Declared here |
_base | variable | Declared here |
Friends
| Name | Description |
|---|---|
operator<< inline |
operator<<
inline
friend inline std::ostream & operator<<(std::ostream & stream, const Address & addr)Defined in src/net/include/icy/net/address.h:131
Public Methods
| Return | Name | Description |
|---|---|---|
Address | Creates a wildcard (all zero) IPv4 Address. | |
Address | Creates an Address from an IP address and a port number. | |
Address | Creates an Address by copying another one. | |
Address | Creates an Address from a native socket address. | |
Address | Creates an Address from an IP address and a service name or port number. | |
Address explicit | Creates an Address from an IP address or host name and a port number/service name. Host name/address and port number must be separated by a colon. In case of an IPv6 address, the address part must be enclosed in brackets. | |
~Address noexcept | Destroys the Address. | |
Address & | operator= | Assigns another Address. |
void | swap | Swaps the Address with another one. |
std::string | host const | Returns the host IP address. |
uint16_t | port const | Returns the port number. |
socklen_t | length const | Returns the length of the internal native socket address. |
const struct sockaddr * | addr const | Returns a pointer to the internal native socket address. |
int | af const | Returns the address family (AF_INET or AF_INET6) of the address. |
std::string | toString const | Returns a string representation of the address. |
Address::Family | family const | Returns the address family of the host's address. |
bool | valid const | Returns true when the port is set and the address is valid ie. not wildcard. |
bool | operator< const | Compares two addresses for ordering (by family then port). |
bool | operator== const | Returns true if the host and port of both addresses are equal. |
bool | operator!= const | Returns true if the host or port of the addresses differ. |
Address
Address()Defined in src/net/include/icy/net/address.h:39
Creates a wildcard (all zero) IPv4 Address.
Address
Address(const std::string & host, uint16_t port)Defined in src/net/include/icy/net/address.h:45
Creates an Address from an IP address and a port number.
The IP address must either be a domain name, or it must be in dotted decimal (IPv4) or hex string (IPv6) format.
Address
Address(const Address & addr)Defined in src/net/include/icy/net/address.h:48
Creates an Address by copying another one.
Address
Address(const struct sockaddr * addr, socklen_t length)Defined in src/net/include/icy/net/address.h:51
Creates an Address from a native socket address.
Address
Address(const std::string & host, const std::string & port)Defined in src/net/include/icy/net/address.h:61
Creates an Address from an IP address and a service name or port number.
The IP address must either be a domain name, or it must be in dotted decimal (IPv4) or hex string (IPv6) format.
The given port must either be a decimal port number, or a service name.
Address
explicit
explicit Address(const std::string & hostAndPort)Defined in src/net/include/icy/net/address.h:72
Creates an Address from an IP address or host name and a port number/service name. Host name/address and port number must be separated by a colon. In case of an IPv6 address, the address part must be enclosed in brackets.
Examples: 192.168.1.10:80
0state.com:8080
~Address
noexcept
~Address() noexceptDefined in src/net/include/icy/net/address.h:75
Destroys the Address.
operator=
Address & operator=(const Address & addr)Defined in src/net/include/icy/net/address.h:78
Assigns another Address.
swap
void swap(Address & addr)Defined in src/net/include/icy/net/address.h:81
Swaps the Address with another one.
host
const
std::string host() constDefined in src/net/include/icy/net/address.h:84
Returns the host IP address.
port
const
uint16_t port() constDefined in src/net/include/icy/net/address.h:87
Returns the port number.
length
const
socklen_t length() constDefined in src/net/include/icy/net/address.h:90
Returns the length of the internal native socket address.
addr
const
const struct sockaddr * addr() constDefined in src/net/include/icy/net/address.h:93
Returns a pointer to the internal native socket address.
af
const
int af() constDefined in src/net/include/icy/net/address.h:96
Returns the address family (AF_INET or AF_INET6) of the address.
toString
const
std::string toString() constDefined in src/net/include/icy/net/address.h:99
Returns a string representation of the address.
family
const
Address::Family family() constDefined in src/net/include/icy/net/address.h:102
Returns the address family of the host's address.
valid
const
bool valid() constDefined in src/net/include/icy/net/address.h:106
Returns true when the port is set and the address is valid ie. not wildcard.
operator<
const
bool operator<(const Address & addr) constDefined in src/net/include/icy/net/address.h:121
Compares two addresses for ordering (by family then port).
Parameters
addrThe address to compare against.
Returns
true if this address is less than addr.
operator==
const
bool operator==(const Address & addr) constDefined in src/net/include/icy/net/address.h:125
Returns true if the host and port of both addresses are equal.
Parameters
addrThe address to compare against.
operator!=
const
bool operator!=(const Address & addr) constDefined in src/net/include/icy/net/address.h:129
Returns true if the host or port of the addresses differ.
Parameters
addrThe address to compare against.
Public Static Methods
| Return | Name | Description |
|---|---|---|
uint16_t | resolveService static | Resolves a service name or decimal port string to a port number. |
bool | validateIP static | Returns true if the given string is a valid IPv4 or IPv6 address. |
resolveService
static
static uint16_t resolveService(const std::string & service)Defined in src/net/include/icy/net/address.h:111
Resolves a service name or decimal port string to a port number.
Parameters
serviceService name (e.g. "http") or decimal port string (e.g. "80").
Returns
The resolved port number in host byte order.
validateIP
static
static bool validateIP(std::string_view address)Defined in src/net/include/icy/net/address.h:116
Returns true if the given string is a valid IPv4 or IPv6 address.
Parameters
addressThe string to validate.
Returns
true if the address parses as a valid IP address, false otherwise.
Protected Methods
| Return | Name | Description |
|---|---|---|
void | init |
init
void init(const std::string & host, uint16_t port)Defined in src/net/include/icy/net/address.h:138
Public Types
| Name | Description |
|---|---|
Family | Possible address families for IP addresses. |
Family
enum FamilyDefined in src/net/include/icy/net/address.h:32
Possible address families for IP addresses.
| Value | Description |
|---|---|
IPv4 | |
IPv6 |
Private Attributes
| Return | Name | Description |
|---|---|---|
std::shared_ptr< AddressBase > | _base |
_base
std::shared_ptr< AddressBase > _base