userver: engine::io::Sockaddr Class Reference
⚠️ This is the documentation for an old userver version. Click here to switch to the latest version.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts
engine::io::Sockaddr Class Referencefinal

Native socket address wrapper. More...

#include <userver/engine/io/sockaddr.hpp>

Public Member Functions

 Sockaddr ()
 Constructs an unspecified native socket address.
 
 Sockaddr (const void *data)
 Wraps a native socket address structure.
 
template<typename T >
T * As ()
 Domain-specific native socket address structure pointer.
 
template<typename T >
const T * As () const
 Domain-specific native socket address structure pointer.
 
struct sockaddr * Data ()
 Native socket address structure pointer.
 
const struct sockaddr * Data () const
 Native socket address structure pointer.
 
socklen_t Size () const
 Maximum supported native socket address structure size.
 
socklen_t Capacity () const
 Maximum supported native socket address structure size.
 
sa_family_t Family () const
 Protocol family.
 
AddrDomain Domain () const
 Communication domain.
 
bool HasPort () const
 Whether the stored socket address family expects a port.
 
int Port () const
 Returns the stored port number if available, otherwise throws.
 
void SetPort (int port)
 Sets a port for address families that allow for one, otherwise throws.
 
std::string PrimaryAddressString () const
 Human-readable address representation.
 

Static Public Member Functions

static constexpr socklen_t Addrlen (AddrDomain domain)
 Domain-specific native socket address structure size.
 

Detailed Description

Native socket address wrapper.

Definition at line 42 of file sockaddr.hpp.

Constructor & Destructor Documentation

◆ Sockaddr() [1/2]

engine::io::Sockaddr::Sockaddr ( )
inline

Constructs an unspecified native socket address.

Definition at line 46 of file sockaddr.hpp.

◆ Sockaddr() [2/2]

engine::io::Sockaddr::Sockaddr ( const void *  data)
inlineexplicit

Wraps a native socket address structure.

Warning
sa_family must contain a correct address family.

Definition at line 51 of file sockaddr.hpp.

Member Function Documentation

◆ Addrlen()

static constexpr socklen_t engine::io::Sockaddr::Addrlen ( AddrDomain  domain)
inlinestaticconstexpr

Domain-specific native socket address structure size.

Definition at line 107 of file sockaddr.hpp.

◆ As() [1/2]

template<typename T >
T * engine::io::Sockaddr::As ( )
inline

Domain-specific native socket address structure pointer.

Warning
No type checking is performed, user must ensure that only the correct domain is accessed.

Definition at line 61 of file sockaddr.hpp.

◆ As() [2/2]

template<typename T >
const T * engine::io::Sockaddr::As ( ) const
inline

Domain-specific native socket address structure pointer.

Warning
No type checking is performed, user must ensure that only the correct domain is accessed.

Definition at line 70 of file sockaddr.hpp.

◆ Capacity()

socklen_t engine::io::Sockaddr::Capacity ( ) const
inline

Maximum supported native socket address structure size.

Definition at line 85 of file sockaddr.hpp.

◆ Data() [1/2]

struct sockaddr * engine::io::Sockaddr::Data ( )
inline

Native socket address structure pointer.

Definition at line 76 of file sockaddr.hpp.

◆ Data() [2/2]

const struct sockaddr * engine::io::Sockaddr::Data ( ) const
inline

Native socket address structure pointer.

Definition at line 79 of file sockaddr.hpp.

◆ Domain()

AddrDomain engine::io::Sockaddr::Domain ( ) const
inline

Communication domain.

Definition at line 91 of file sockaddr.hpp.

◆ Family()

sa_family_t engine::io::Sockaddr::Family ( ) const
inline

Protocol family.

Definition at line 88 of file sockaddr.hpp.

◆ PrimaryAddressString()

std::string engine::io::Sockaddr::PrimaryAddressString ( ) const

Human-readable address representation.

Note
Does not include port number.

◆ Size()

socklen_t engine::io::Sockaddr::Size ( ) const
inline

Maximum supported native socket address structure size.

Definition at line 82 of file sockaddr.hpp.


The documentation for this class was generated from the following file: