00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00025 #ifndef SOCKETSTREAM_INET6_ADDRESS_H
00026 #define SOCKETSTREAM_INET6_ADDRESS_H 1
00027 
00028 #include <socketstream/config.h>
00029 
00030 #ifndef WIN32
00031 # include <netinet/in.h>
00032 #endif
00033 
00034 namespace ss {
00035 
00039         class SOCKETSTREAM_API ipv6_address : protected sockaddr_in6
00040         {
00041         public:
00042 
00046                 typedef sockaddr_in6 sockaddr_t;
00047 
00051                 static const int AF = AF_INET6;
00052 
00056                 static in6_addr const& any;
00057 
00061                 static in6_addr const& loopback;
00062 
00066                 ipv6_address ();
00067 
00079                 ipv6_address (in6_addr const& address, unsigned short port);
00080 
00084                 ipv6_address (ipv6_address const& that);
00085 
00089                 ipv6_address (sockaddr_in6 const& that);
00090 
00096                 ipv6_address (sockaddr const& that);
00097 
00101                 ipv6_address& operator= (ipv6_address const& that);
00102 
00106                 ipv6_address& operator= (sockaddr_in6 const& that);
00107 
00113                 ipv6_address& operator= (sockaddr const& that);
00114 
00115         };
00116 
00117 }
00118 
00119 #endif // SOCKETSTREAM_INET6_ADDRESS_H