2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
20#include "net/SocketAddress.h"
22#ifndef DOXYGEN_SHOULD_SKIP_THIS
30 template <
typename SockAddr>
31 SocketAddress<SockAddr>::SocketAddress(sa_family_t af, SockLen sockAddrLen)
32 : sockAddrLen(sockAddrLen) {
33 std::memset(&sockAddr, 0,
sizeof(sockAddr));
34 reinterpret_cast<sockaddr*>(&sockAddr)->sa_family = af;
37 template <
typename SockAddr>
38 SocketAddress<SockAddr>::SocketAddress(
const SocketAddress& socketAddress)
39 : sockAddr(socketAddress.sockAddr)
40 , sockAddrLen(socketAddress.sockAddrLen) {
43 template <
typename SockAddr>
44 SocketAddress<SockAddr>::SocketAddress(
const SockAddr& sockAddr, SockLen sockAddrLen)
46 , sockAddrLen(sockAddrLen) {
49 template <
typename SockAddr>
50 SocketAddress<SockAddr>& SocketAddress<SockAddr>::operator=(
const SocketAddress& socketAddress) {
51 if (
this != &socketAddress) {
52 this->sockAddr = socketAddress.sockAddr;
53 this->sockAddrLen = socketAddress.sockAddrLen;
59 template <
typename SockAddr>
60 const sockaddr& SocketAddress<SockAddr>::getSockAddr() {
61 return reinterpret_cast<
const sockaddr&>(sockAddr);
64 template <
typename SockAddr>
65 const typename SocketAddress<SockAddr>::SockLen& SocketAddress<SockAddr>::getSockAddrLen()
const {
69 template <
typename SockAddr>
70 sa_family_t SocketAddress<SockAddr>::getAddressFamily()
const {
71 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})