00001
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef _SOCKETS_SocketAddress_H
00024 #define _SOCKETS_SocketAddress_H
00025
00026 #include "sockets-config.h"
00027 #include <string>
00028 #include <memory>
00029 #include "socket_include.h"
00030
00031 #ifdef SOCKETS_NAMESPACE
00032 namespace SOCKETS_NAMESPACE {
00033 #endif
00034
00035
00046 class SocketAddress
00047 {
00048 public:
00049 virtual ~SocketAddress() {}
00050
00052 virtual operator struct sockaddr *() = 0;
00053
00055 virtual operator socklen_t() = 0;
00056
00058 virtual bool operator==(SocketAddress&) = 0;
00059
00062 virtual void SetPort(port_t port) = 0;
00063
00066 virtual port_t GetPort() = 0;
00067
00070 virtual void SetAddress(struct sockaddr *sa) = 0;
00071
00073 virtual std::string Convert(bool include_port) = 0;
00074
00076 virtual std::string Reverse() = 0;
00077
00079 virtual int GetFamily() = 0;
00080
00082 virtual bool IsValid() = 0;
00083
00085 virtual std::auto_ptr<SocketAddress> GetCopy() = 0;
00086 };
00087
00088
00089
00090
00091 #ifdef SOCKETS_NAMESPACE
00092 }
00093 #endif
00094 #endif // _SOCKETS_SocketAddress_H