added wxSockAddress copy ctor which, in particular, fixes Clone() and fixed its operator=() return type
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@12585 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -30,14 +30,16 @@ public:
|
|||||||
typedef enum { IPV4=1, IPV6=2, UNIX=3 } Addr;
|
typedef enum { IPV4=1, IPV6=2, UNIX=3 } Addr;
|
||||||
|
|
||||||
wxSockAddress();
|
wxSockAddress();
|
||||||
|
wxSockAddress(const wxSockAddress& other);
|
||||||
virtual ~wxSockAddress();
|
virtual ~wxSockAddress();
|
||||||
|
|
||||||
|
wxSockAddress& operator=(const wxSockAddress& other);
|
||||||
|
|
||||||
virtual void Clear();
|
virtual void Clear();
|
||||||
virtual int Type() = 0;
|
virtual int Type() = 0;
|
||||||
|
|
||||||
GAddress *GetAddress() const { return m_address; }
|
GAddress *GetAddress() const { return m_address; }
|
||||||
void SetAddress(GAddress *address);
|
void SetAddress(GAddress *address);
|
||||||
const wxSockAddress& operator =(const wxSockAddress& addr);
|
|
||||||
|
|
||||||
// we need to be able to create copies of the addresses polymorphically (i.e.
|
// we need to be able to create copies of the addresses polymorphically (i.e.
|
||||||
// wihtout knowing the exact address class)
|
// wihtout knowing the exact address class)
|
||||||
@@ -51,6 +53,7 @@ class WXDLLEXPORT wxIPV4address : public wxSockAddress {
|
|||||||
DECLARE_DYNAMIC_CLASS(wxIPV4address)
|
DECLARE_DYNAMIC_CLASS(wxIPV4address)
|
||||||
public:
|
public:
|
||||||
wxIPV4address();
|
wxIPV4address();
|
||||||
|
wxIPV4address(const wxIPV4address& other);
|
||||||
virtual ~wxIPV4address();
|
virtual ~wxIPV4address();
|
||||||
|
|
||||||
bool Hostname(const wxString& name);
|
bool Hostname(const wxString& name);
|
||||||
@@ -74,7 +77,8 @@ private:
|
|||||||
struct sockaddr_in6 *m_addr;
|
struct sockaddr_in6 *m_addr;
|
||||||
public:
|
public:
|
||||||
wxIPV6address();
|
wxIPV6address();
|
||||||
~wxIPV6address();
|
wxIPV6address(const wxIPV6address& other);
|
||||||
|
virtual ~wxIPV6address();
|
||||||
|
|
||||||
bool Hostname(const wxString& name);
|
bool Hostname(const wxString& name);
|
||||||
bool Hostname(unsigned char addr[16]);
|
bool Hostname(unsigned char addr[16]);
|
||||||
@@ -102,7 +106,8 @@ private:
|
|||||||
struct sockaddr_un *m_addr;
|
struct sockaddr_un *m_addr;
|
||||||
public:
|
public:
|
||||||
wxUNIXaddress();
|
wxUNIXaddress();
|
||||||
~wxUNIXaddress();
|
wxUNIXaddress(const wxUNIXaddress& other);
|
||||||
|
virtual ~wxUNIXaddress();
|
||||||
|
|
||||||
void Filename(const wxString& name);
|
void Filename(const wxString& name);
|
||||||
wxString Filename();
|
wxString Filename();
|
||||||
|
@@ -55,6 +55,11 @@ wxSockAddress::wxSockAddress()
|
|||||||
m_address = GAddress_new();
|
m_address = GAddress_new();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
wxSockAddress::wxSockAddress(const wxSockAddress& other)
|
||||||
|
{
|
||||||
|
m_address = GAddress_copy(other.m_address);
|
||||||
|
}
|
||||||
|
|
||||||
wxSockAddress::~wxSockAddress()
|
wxSockAddress::~wxSockAddress()
|
||||||
{
|
{
|
||||||
GAddress_destroy(m_address);
|
GAddress_destroy(m_address);
|
||||||
@@ -66,7 +71,7 @@ void wxSockAddress::SetAddress(GAddress *address)
|
|||||||
m_address = GAddress_copy(address);
|
m_address = GAddress_copy(address);
|
||||||
}
|
}
|
||||||
|
|
||||||
const wxSockAddress& wxSockAddress::operator=(const wxSockAddress& addr)
|
wxSockAddress& wxSockAddress::operator=(const wxSockAddress& addr)
|
||||||
{
|
{
|
||||||
SetAddress(addr.GetAddress());
|
SetAddress(addr.GetAddress());
|
||||||
return *this;
|
return *this;
|
||||||
@@ -83,7 +88,11 @@ void wxSockAddress::Clear()
|
|||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
|
|
||||||
wxIPV4address::wxIPV4address()
|
wxIPV4address::wxIPV4address()
|
||||||
: wxSockAddress()
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
wxIPV4address::wxIPV4address(const wxIPV4address& other)
|
||||||
|
: wxSockAddress(other)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -152,6 +161,11 @@ wxIPV6address::wxIPV6address()
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
wxIPV6address::wxIPV6address(const wxIPV6address& other)
|
||||||
|
: wxSockAddress(other)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
wxIPV6address::~wxIPV6address()
|
wxIPV6address::~wxIPV6address()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
@@ -191,9 +205,10 @@ unsigned short wxIPV6address::Service()
|
|||||||
return GAddress_INET_GetPort(m_address);
|
return GAddress_INET_GetPort(m_address);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif // 0
|
||||||
|
|
||||||
#if defined(__UNIX__) && !defined(__WXMAC__)
|
#if defined(__UNIX__) && !defined(__WXMAC__)
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
// wxUNIXaddress
|
// wxUNIXaddress
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
@@ -203,6 +218,11 @@ wxUNIXaddress::wxUNIXaddress()
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
wxUNIXaddress::wxUNIXaddress(const wxUNIXaddress& other)
|
||||||
|
: wxSockAddress(other)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
wxUNIXaddress::~wxUNIXaddress()
|
wxUNIXaddress::~wxUNIXaddress()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
@@ -221,7 +241,7 @@ wxString wxUNIXaddress::Filename()
|
|||||||
return wxString(path);
|
return wxString(path);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif // __UNIX__
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
// wxUSE_SOCKETS
|
// wxUSE_SOCKETS
|
||||||
|
Reference in New Issue
Block a user