00001
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033 #ifndef _SOCKETS_SocketAddress_H
00034 #define _SOCKETS_SocketAddress_H
00035
00036 #include "sockets-config.h"
00037 #include <string>
00038 #include <memory>
00039 #include "socket_include.h"
00040
00041 #ifdef SOCKETS_NAMESPACE
00042 namespace SOCKETS_NAMESPACE {
00043 #endif
00044
00045
00056 class SocketAddress
00057 {
00058 public:
00059 virtual ~SocketAddress() {}
00060
00062 virtual operator struct sockaddr *() = 0;
00063
00065 virtual operator socklen_t() = 0;
00066
00068 virtual bool operator==(SocketAddress&) = 0;
00069
00072 virtual void SetPort(port_t port) = 0;
00073
00076 virtual port_t GetPort() = 0;
00077
00080 virtual void SetAddress(struct sockaddr *sa) = 0;
00081
00083 virtual std::string Convert(bool include_port) = 0;
00084
00086 virtual std::string Reverse() = 0;
00087
00089 virtual int GetFamily() = 0;
00090
00092 virtual bool IsValid() = 0;
00093
00095 virtual std::auto_ptr<SocketAddress> GetCopy() = 0;
00096 };
00097
00098
00099
00100
00101 #ifdef SOCKETS_NAMESPACE
00102 }
00103 #endif
00104 #endif // _SOCKETS_SocketAddress_H
00105