INetAddressing.cci
Go to the documentation of this file.
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00027
00028 #include <arpa/inet.h>
00029
00030 #define prefix_ inline
00031
00032
00033
00034
00035
00036 prefix_ senf::INet4SocketAddress::INet4SocketAddress()
00037 : BSDSocketAddress (sizeof(sockaddr_in), AF_INET)
00038 {}
00039
00040 prefix_ senf::INet4SocketAddress::INet4SocketAddress(const INet4SocketAddress& other)
00041 : BSDSocketAddress(other)
00042 {}
00043
00044 prefix_ senf::INet4SocketAddress&
00045 senf::INet4SocketAddress::operator=(const INet4SocketAddress& other)
00046 {
00047 BSDSocketAddress::operator=(other);
00048 return *this;
00049 }
00050
00051 prefix_ senf::INet4Address senf::INet4SocketAddress::address()
00052 const
00053 {
00054 return INet4Address::from_inaddr(addr_.sin_addr.s_addr);
00055 }
00056
00057 prefix_ unsigned senf::INet4SocketAddress::port()
00058 const
00059 {
00060 return ntohs(addr_.sin_port);
00061 }
00062
00063 prefix_ void senf::INet4SocketAddress::address(INet4Address const & addr)
00064 {
00065 addr_.sin_addr.s_addr = addr.inaddr();
00066 }
00067
00068 prefix_ void senf::INet4SocketAddress::port(unsigned p)
00069 {
00070 addr_.sin_port = htons(p);
00071 }
00072
00073
00074
00075
00076 prefix_ senf::INet6SocketAddress::INet6SocketAddress()
00077 : BSDSocketAddress (sizeof(sockaddr_in6), AF_INET6)
00078 {}
00079
00080 prefix_ senf::INet6SocketAddress::INet6SocketAddress(INet6Address const & addr, unsigned port)
00081 : BSDSocketAddress (sizeof(sockaddr_in6), AF_INET6)
00082 {
00083 std::copy(addr.begin(), addr.end(), &sockaddr_.sin6_addr.s6_addr[0]);
00084 sockaddr_.sin6_port = htons(port);
00085 }
00086
00087 prefix_ senf::INet6SocketAddress::INet6SocketAddress(INet6Address const & addr, unsigned port,
00088 std::string const & iface)
00089 : BSDSocketAddress (sizeof(sockaddr_in6), AF_INET6)
00090 {
00091 std::copy(addr.begin(), addr.end(), &sockaddr_.sin6_addr.s6_addr[0]);
00092 sockaddr_.sin6_port = htons(port);
00093 assignIface(iface);
00094 }
00095
00096 prefix_ senf::INet6SocketAddress::INet6SocketAddress(unsigned port)
00097 : BSDSocketAddress (sizeof(sockaddr_in6), AF_INET6)
00098 {
00099 sockaddr_.sin6_port = htons(port);
00100 }
00101
00102 prefix_ senf::INet6SocketAddress::INet6SocketAddress(const INet6SocketAddress& other)
00103 : BSDSocketAddress (other)
00104 {}
00105
00106 prefix_ senf::INet6SocketAddress&
00107 senf::INet6SocketAddress::operator=(const INet6SocketAddress& other)
00108 {
00109 BSDSocketAddress::operator=(other);
00110 return *this;
00111 }
00112
00113 prefix_ senf::INet6Address senf::INet6SocketAddress::address()
00114 const
00115 {
00116 return INet6Address::from_data(&sockaddr_.sin6_addr.s6_addr[0]);
00117 }
00118
00119 prefix_ void senf::INet6SocketAddress::address(INet6Address const & addr)
00120 {
00121 std::copy(addr.begin(), addr.end(), &sockaddr_.sin6_addr.s6_addr[0]);
00122 }
00123
00124 prefix_ unsigned senf::INet6SocketAddress::port()
00125 const
00126 {
00127 return ntohs(sockaddr_.sin6_port);
00128 }
00129
00130 prefix_ void senf::INet6SocketAddress::port(unsigned port)
00131 {
00132 sockaddr_.sin6_port = htons(port);
00133 }
00134
00135 prefix_ void senf::INet6SocketAddress::iface(std::string const & iface)
00136 {
00137 assignIface(iface);
00138 }
00139
00140
00141 #undef prefix_
00142
00143
00144
00145
00146
00147
00148
00149
00150
00151
00152