git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57000
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
- wxSocketImpl is actually just an abstract base class having only code
common to all platforms, the concrete implementation classes derive from
- wxSocketImpl is actually just an abstract base class having only code
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
GUI applications. wxSocketManager class exists to abstract this in such
- Some socket operations have different implementations in console-mode and
GUI applications. wxSocketManager class exists to abstract this in such
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
// specified events inside the currently running event loop (but notice
// that both BSD and Winsock implementations actually use socket->m_server
// these functions enable or disable monitoring of the given socket for the
// specified events inside the currently running event loop (but notice
// that both BSD and Winsock implementations actually use socket->m_server
BSD and Winsock sockets.
Objects of this class are not created directly but only via its static
BSD and Winsock sockets.
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.
virtual bool OnInit() { return true; }
virtual void OnExit() { }
virtual bool OnInit() { return true; }
virtual void OnExit() { }
- // allocate/free the storage we need
- virtual wxSocketImpl *CreateSocket(wxSocketBase& wxsocket)
- {
- return new wxSocketImplUnix(wxsocket);
- }
-
protected:
// identifies either input or output direction
//
protected:
// identifies either input or output direction
//
// wxSocketImpl
// ==========================================================================
// wxSocketImpl
// ==========================================================================
-/* static */
-wxSocketImpl *wxSocketImpl::Create(wxSocketBase& wxsocket)
-{
- wxSocketManager * const manager = wxSocketManager::Get();
- return manager ? manager->CreateSocket(wxsocket) : NULL;
-}
-
wxSocketImpl::wxSocketImpl(wxSocketBase& wxsocket)
: m_wxsocket(&wxsocket)
{
wxSocketImpl::wxSocketImpl(wxSocketBase& wxsocket)
: m_wxsocket(&wxsocket)
{
#include "wx/private/socket.h"
#include "wx/private/socket.h"
+/* static */
+wxSocketImpl *wxSocketImpl::Create(wxSocketBase& wxsocket)
+{
+ return new wxSocketImplMSW(wxsocket);
+}
+
void wxSocketImplMSW::DoClose()
{
wxSocketManager::Get()->
void wxSocketImplMSW::DoClose()
{
wxSocketManager::Get()->
# define SOCKET_DEBUG(args)
#endif /* __GSOCKET_DEBUG__ */
# define SOCKET_DEBUG(args)
#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
return wxSOCKET_NOERROR;
}
#endif /* !defined(__VISAGECPP__) */
return wxSOCKET_NOERROR;
}
#endif /* !defined(__VISAGECPP__) */
#endif /* wxUSE_SOCKETS */
#endif /* wxUSE_SOCKETS */