17 : fSocketAddress_{iaddr}
21 : fSocketAddress_V4_{iaddr}
25 : fSocketAddress_V6_{iaddr}
29 : fSocketAddressStorage_{iaddr}
34 switch (
iaddr.GetAddressFamily ()) {
35 case InternetAddress::AddressFamily::V4: {
37 fSocketAddress_V4_.sin_family =
AF_INET;
41 case InternetAddress::AddressFamily::V6: {
43 fSocketAddress_V6_.sin6_family =
AF_INET6;
55 return fSocketAddress_.sa_family ==
AF_UNSPEC;
60 Assert (fSocketAddress_.sa_family ==
AF_UNSPEC);
64 return static_cast<FamilyType> (fSocketAddress_.sa_family);
68 switch (fSocketAddress_.sa_family) {
70 return sizeof (fSocketAddress_V4_);
73 return sizeof (fSocketAddress_V6_);
79 return sizeof (fSocketAddressStorage_);
85 return fSocketAddress_.sa_family ==
AF_INET or fSocketAddress_.sa_family ==
AF_INET6;
90 switch (fSocketAddress_.sa_family) {
106 switch (fSocketAddress_.sa_family) {
108 return ntohs (fSocketAddress_V4_.sin_port);
111 return ntohs (fSocketAddress_V6_.sin6_port);
122 Require (fSocketAddress_.sa_family ==
AF_INET or fSocketAddress_.sa_family ==
AF_UNSPEC);
123 return fSocketAddress_;
128 return fSocketAddressStorage_;
133 Require (fSocketAddress_.sa_family ==
AF_INET or fSocketAddress_.sa_family ==
AF_UNSPEC);
134 return fSocketAddress_V4_;
140 return fSocketAddress_V6_;
150 Require (fm == SocketAddress::INET or fm == SocketAddress::INET6);
151 if (fm == SocketAddress::INET) {
152 return V4::kLocalhost;
154 if (fm == SocketAddress::INET6) {
155 return V6::kLocalhost;
157 return V4::kLocalhost;
#define AssertNotReached()
constexpr SocketAddress() noexcept
nonvirtual PortType GetPort() const
nonvirtual size_t GetRequiredSize() const
nonvirtual InternetAddress GetInternetAddress() const
FamilyType
Socket address family - also sometimes referred to as domain (argument to ::socket calls it domain)
nonvirtual bool empty() const
nonvirtual bool IsInternetAddress() const
nonvirtual FamilyType GetAddressFamily() const
constexpr InternetAddress LocalHost(SocketAddress::FamilyType fm)
return V4::kLocalhost or V6::kLocalhost depending on argument address family