X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FSocket%2FProtocols%2FINet%2FINet6Address.hh;h=c22b28050d7d2ea1aa84a3f560f755d7079d6042;hb=cb50871835b7a5c37e4fd32d38de67fa12570ebc;hp=a80e0adda29ee4c6e1cb781b9d190a7c865d078c;hpb=601d1f509f5bb24df167a4dd5a20da67a0af9af8;p=senf.git diff --git a/senf/Socket/Protocols/INet/INet6Address.hh b/senf/Socket/Protocols/INet/INet6Address.hh index a80e0ad..c22b280 100644 --- a/senf/Socket/Protocols/INet/INet6Address.hh +++ b/senf/Socket/Protocols/INet/INet6Address.hh @@ -33,12 +33,9 @@ #include #include #include -#include "../../../Utils/safe_bool.hh" -#include "../../../Utils/Tags.hh" +#include +#include #include "INet4Address.hh" -#include "../AddressExceptions.hh" -#include "../Raw/MACAddress.hh" -#include "../Raw/EUI64.hh" //#include "INet6Address.mpp" #include "INet6Address.ih" @@ -46,6 +43,8 @@ namespace senf { + class EUI64; + class MACAddress; class INet6Network; /** \brief INet6 network address @@ -87,7 +86,7 @@ namespace senf { ff00::/8 Multicast RFC4291 ff00::/12 Globally allocated multicast RFC4291 ff10::/12 Locally allocated multicast RFC4291 - ff30::/12 Unicast prefic based multicast RFC3306 + ff30::/12 Unicast prefix based multicast RFC3306 ff70::/12 Multicast address with embedded RP RFC3956 \endhtmlonly @@ -177,12 +176,14 @@ namespace senf { ///< Convert string to address /**< This member will try to convert the given string into an IP address. from_string() supports all standard IP - literal representations as well es hostnames. + literal representations as well as hostnames. \attention This call may block if \a s represents a hostname which must be looked up via some network protocol like DNS or NIS \throws AddressSyntaxException if the address cannot be converted for some reason + \throws UnknownHostnameException if the hostname cannot + be resolved \param[in] s Address literal or hostname \param[in] resolve If this is set to \c ResolveINet4, the call will additionally try to interpret \a s as @@ -207,17 +208,17 @@ namespace senf { \par INet4 compatible INet6 addresses are not directly supported, they are deprecated in the RFC. */ - static INet6Address from_mac(senf::MACAddress const & mac); + static INet6Address from_mac(MACAddress const & mac); ///< Construct a link-local INet6 address /**< This will construct a link local address of the form fe80::xxxx:xxff:fexx:xxxx. */ - static INet6Address from_eui64(senf::EUI64 const & eui); + static INet6Address from_eui64(EUI64 const & eui); ///< Construct link-local INet6 address /**< This will construct a link local address of the form fe80::xxxx:xxxx:xxxx:xxxx. */ - - in6_addr toin6_addr() const; ///< get the linux in6_addr struct (convinience only) + + in6_addr toin6_addr() const; ///< get the linux in6_addr struct (convenience only) ///@} /////////////////////////////////////////////////////////////////////////// @@ -293,7 +294,9 @@ namespace senf { \related INet6Address */ std::ostream & operator<<(std::ostream & os, INet6Address const & addr); + /** \brief Try to initialize INet6Address instance from a string representation + sets std::ios::failbit on the stream if an error occurred \see INet6Address from_string() \related INet6Address @@ -395,6 +398,13 @@ namespace senf { \related INet6Network */ std::ostream & operator<<(std::ostream & os, INet6Network const & addr); + + /** \brief Try to initialize INet6Network instance from a string representation + + sets std::ios::failbit on the stream if an error occurred + \related INet6Network + */ + std::istream & operator>>(std::istream & is, INet6Network & addr); } ///////////////////////////////hh.e////////////////////////////////////////