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:
parent
a60b1f5d57
commit
1539c2f54a
@ -30,14 +30,16 @@ public:
|
||||
typedef enum { IPV4=1, IPV6=2, UNIX=3 } Addr;
|
||||
|
||||
wxSockAddress();
|
||||
wxSockAddress(const wxSockAddress& other);
|
||||
virtual ~wxSockAddress();
|
||||
|
||||
wxSockAddress& operator=(const wxSockAddress& other);
|
||||
|
||||
virtual void Clear();
|
||||
virtual int Type() = 0;
|
||||
|
||||
GAddress *GetAddress() const { return m_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.
|
||||
// wihtout knowing the exact address class)
|
||||
@ -51,6 +53,7 @@ class WXDLLEXPORT wxIPV4address : public wxSockAddress {
|
||||
DECLARE_DYNAMIC_CLASS(wxIPV4address)
|
||||
public:
|
||||
wxIPV4address();
|
||||
wxIPV4address(const wxIPV4address& other);
|
||||
virtual ~wxIPV4address();
|
||||
|
||||
bool Hostname(const wxString& name);
|
||||
@ -74,7 +77,8 @@ private:
|
||||
struct sockaddr_in6 *m_addr;
|
||||
public:
|
||||
wxIPV6address();
|
||||
~wxIPV6address();
|
||||
wxIPV6address(const wxIPV6address& other);
|
||||
virtual ~wxIPV6address();
|
||||
|
||||
bool Hostname(const wxString& name);
|
||||
bool Hostname(unsigned char addr[16]);
|
||||
@ -102,7 +106,8 @@ private:
|
||||
struct sockaddr_un *m_addr;
|
||||
public:
|
||||
wxUNIXaddress();
|
||||
~wxUNIXaddress();
|
||||
wxUNIXaddress(const wxUNIXaddress& other);
|
||||
virtual ~wxUNIXaddress();
|
||||
|
||||
void Filename(const wxString& name);
|
||||
wxString Filename();
|
||||
|
@ -55,6 +55,11 @@ wxSockAddress::wxSockAddress()
|
||||
m_address = GAddress_new();
|
||||
}
|
||||
|
||||
wxSockAddress::wxSockAddress(const wxSockAddress& other)
|
||||
{
|
||||
m_address = GAddress_copy(other.m_address);
|
||||
}
|
||||
|
||||
wxSockAddress::~wxSockAddress()
|
||||
{
|
||||
GAddress_destroy(m_address);
|
||||
@ -66,7 +71,7 @@ void wxSockAddress::SetAddress(GAddress *address)
|
||||
m_address = GAddress_copy(address);
|
||||
}
|
||||
|
||||
const wxSockAddress& wxSockAddress::operator=(const wxSockAddress& addr)
|
||||
wxSockAddress& wxSockAddress::operator=(const wxSockAddress& addr)
|
||||
{
|
||||
SetAddress(addr.GetAddress());
|
||||
return *this;
|
||||
@ -83,7 +88,11 @@ void wxSockAddress::Clear()
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
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()
|
||||
{
|
||||
}
|
||||
@ -191,15 +205,21 @@ unsigned short wxIPV6address::Service()
|
||||
return GAddress_INET_GetPort(m_address);
|
||||
}
|
||||
|
||||
#endif
|
||||
#endif // 0
|
||||
|
||||
#if defined(__UNIX__) && !defined(__WXMAC__)
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// wxUNIXaddress
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
wxUNIXaddress::wxUNIXaddress()
|
||||
: wxSockAddress()
|
||||
: wxSockAddress()
|
||||
{
|
||||
}
|
||||
|
||||
wxUNIXaddress::wxUNIXaddress(const wxUNIXaddress& other)
|
||||
: wxSockAddress(other)
|
||||
{
|
||||
}
|
||||
|
||||
@ -221,7 +241,7 @@ wxString wxUNIXaddress::Filename()
|
||||
return wxString(path);
|
||||
}
|
||||
|
||||
#endif
|
||||
#endif // __UNIX__
|
||||
|
||||
#endif
|
||||
// wxUSE_SOCKETS
|
||||
|
Loading…
Reference in New Issue
Block a user