remove wxSocketManager::CreateSocket() function, we don't need to have different wxSocketImpl implementation for the same platform, all the differences between console and GUI applications are abstracted by wxSocketManager::Install/Uninstall_Callback() methods

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57000 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2008-11-28 15:06:50 +00:00
parent acd523a964
commit 54cb21d692
5 changed files with 15 additions and 23 deletions

View File

@@ -21,7 +21,7 @@
- wxSocketImpl is actually just an abstract base class having only code - wxSocketImpl is actually just an abstract base class having only code
common to all platforms, the concrete implementation classes derive from common to all platforms, the concrete implementation classes derive from
it and are created by wxSocketManager::CreateSocket(). it and are created by wxSocketImpl::Create().
- Some socket operations have different implementations in console-mode and - Some socket operations have different implementations in console-mode and
GUI applications. wxSocketManager class exists to abstract this in such GUI applications. wxSocketManager class exists to abstract this in such
@@ -153,14 +153,6 @@ public:
virtual void OnExit() = 0; virtual void OnExit() = 0;
// create a concrete socket implementation associated with the given
// wxSocket object
//
// the returned object must be deleted by the caller
virtual wxSocketImpl *CreateSocket(wxSocketBase& wxsocket) = 0;
// these functions enable or disable monitoring of the given socket for the // these functions enable or disable monitoring of the given socket for the
// specified events inside the currently running event loop (but notice // specified events inside the currently running event loop (but notice
// that both BSD and Winsock implementations actually use socket->m_server // that both BSD and Winsock implementations actually use socket->m_server
@@ -185,7 +177,7 @@ private:
BSD and Winsock sockets. BSD and Winsock sockets.
Objects of this class are not created directly but only via its static Objects of this class are not created directly but only via its static
Create() method which in turn forwards to wxSocketManager::CreateSocket(). Create() method which is implemented in port-specific code.
*/ */
class wxSocketImpl class wxSocketImpl
{ {

View File

@@ -141,12 +141,6 @@ public:
virtual bool OnInit() { return true; } virtual bool OnInit() { return true; }
virtual void OnExit() { } virtual void OnExit() { }
// allocate/free the storage we need
virtual wxSocketImpl *CreateSocket(wxSocketBase& wxsocket)
{
return new wxSocketImplUnix(wxsocket);
}
protected: protected:
// identifies either input or output direction // identifies either input or output direction
// //

View File

@@ -160,13 +160,6 @@ void wxSocketManager::Init()
// wxSocketImpl // wxSocketImpl
// ========================================================================== // ==========================================================================
/* static */
wxSocketImpl *wxSocketImpl::Create(wxSocketBase& wxsocket)
{
wxSocketManager * const manager = wxSocketManager::Get();
return manager ? manager->CreateSocket(wxsocket) : NULL;
}
wxSocketImpl::wxSocketImpl(wxSocketBase& wxsocket) wxSocketImpl::wxSocketImpl(wxSocketBase& wxsocket)
: m_wxsocket(&wxsocket) : m_wxsocket(&wxsocket)
{ {

View File

@@ -77,6 +77,12 @@ wxFORCE_LINK_MODULE(gsockmsw)
#include "wx/private/socket.h" #include "wx/private/socket.h"
/* static */
wxSocketImpl *wxSocketImpl::Create(wxSocketBase& wxsocket)
{
return new wxSocketImplMSW(wxsocket);
}
void wxSocketImplMSW::DoClose() void wxSocketImplMSW::DoClose()
{ {
wxSocketManager::Get()-> wxSocketManager::Get()->

View File

@@ -431,6 +431,12 @@ struct servent *wxGetservbyname_r(const char *port, const char *protocol,
# define SOCKET_DEBUG(args) # define SOCKET_DEBUG(args)
#endif /* __GSOCKET_DEBUG__ */ #endif /* __GSOCKET_DEBUG__ */
/* static */
wxSocketImpl *wxSocketImpl::Create(wxSocketBase& wxsocket)
{
return new wxSocketImplUnix(wxsocket);
}
/* /*
* Disallow further read/write operations on this socket, close * Disallow further read/write operations on this socket, close
@@ -1680,4 +1686,5 @@ wxSocketError GAddress_UNIX_GetPath(GAddress *address, char *path, size_t sbuf)
return wxSOCKET_NOERROR; return wxSOCKET_NOERROR;
} }
#endif /* !defined(__VISAGECPP__) */ #endif /* !defined(__VISAGECPP__) */
#endif /* wxUSE_SOCKETS */ #endif /* wxUSE_SOCKETS */