2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
42#include "net/SocketAddress.h"
44#ifndef DOXYGEN_SHOULD_SKIP_THIS
52 template <
typename SockAddr>
53 SocketAddress<SockAddr>::SocketAddress(sa_family_t af, SockLen sockAddrLen)
54 : sockAddrLen(sockAddrLen) {
55 std::memset(&sockAddr, 0,
sizeof(sockAddr));
56 reinterpret_cast<sockaddr*>(&sockAddr)->sa_family = af;
59 template <
typename SockAddr>
60 SocketAddress<SockAddr>::SocketAddress(
const SocketAddress& socketAddress)
61 : sockAddr(socketAddress.sockAddr)
62 , sockAddrLen(socketAddress.sockAddrLen) {
65 template <
typename SockAddr>
66 SocketAddress<SockAddr>::SocketAddress(
const SockAddr& sockAddr, SockLen sockAddrLen)
68 , sockAddrLen(sockAddrLen) {
71 template <
typename SockAddr>
72 SocketAddress<SockAddr>& SocketAddress<SockAddr>::operator=(
const SocketAddress& socketAddress) {
73 if (
this != &socketAddress) {
74 this->sockAddr = socketAddress.sockAddr;
75 this->sockAddrLen = socketAddress.sockAddrLen;
81 template <
typename SockAddr>
82 const sockaddr& SocketAddress<SockAddr>::getSockAddr() {
83 return reinterpret_cast<
const sockaddr&>(sockAddr);
86 template <
typename SockAddr>
87 const typename SocketAddress<SockAddr>::SockLen& SocketAddress<SockAddr>::getSockAddrLen()
const {
91 template <
typename SockAddr>
92 sa_family_t SocketAddress<SockAddr>::getAddressFamily()
const {
93 return reinterpret_cast<
const sockaddr*>(&sockAddr)->sa_family;
SocketAddress & setPort(uint16_t port)
SocketAddress(const std::string &ipOrHostname, uint16_t port)
SocketAddress & setHost(const std::string &ipOrHostname)
SocketAddress(uint16_t port)
SocketAddress(const std::string &ipOrHostname)
std::string getHost() const
std::string getCanonName() const
SocketAddress(const SockAddr &sockAddr, SockLen sockAddrLen, bool numeric=true)
std::string toString(bool expanded=true) const override
void init(const Hints &hints={.aiFlags=0,.aiSockType=0,.aiProtocol=0})