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
00032 #ifdef SOCKETS_NAMESPACE
00033 namespace SOCKETS_NAMESPACE {
00034 #endif
00035
00036
00047 class SocketAddress
00048 {
00049 public:
00050 virtual ~SocketAddress() {}
00051
00053 virtual operator struct sockaddr *() = 0;
00054
00056 virtual operator socklen_t() = 0;
00057
00059 virtual bool operator==(SocketAddress&) = 0;
00060
00063 virtual void SetPort(port_t port) = 0;
00064
00067 virtual port_t GetPort() = 0;
00068
00071 virtual void SetAddress(struct sockaddr *sa) = 0;
00072
00074 virtual std::string Convert(bool include_port) = 0;
00075
00077 virtual std::string Reverse() = 0;
00078
00080 virtual int GetFamily() = 0;
00081
00083 virtual bool IsValid() = 0;
00084
00086 virtual std::auto_ptr<SocketAddress> GetCopy() = 0;
00087 };
00088
00089
00090
00091
00092 #ifdef SOCKETS_NAMESPACE
00093 }
00094 #endif
00095 #endif // _SOCKETS_SocketAddress_H