X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c9bccf239c1506c7eea0bddea44d9e4b76ad1d93..a7689c49fe02c0c065facf736ab28b19f5997b7c:/include/wx/private/socket.h diff --git a/include/wx/private/socket.h b/include/wx/private/socket.h index e736a83dbd..78e3e6351a 100644 --- a/include/wx/private/socket.h +++ b/include/wx/private/socket.h @@ -1,6 +1,6 @@ ///////////////////////////////////////////////////////////////////////////// // Name: wx/private/socket.h -// Purpose: wxSocketImpl nd related declarations +// Purpose: wxSocketImpl and related declarations // Authors: Guilhem Lavaux, Vadim Zeitlin // Created: April 1997 // RCS-ID: $Id$ @@ -51,7 +51,7 @@ having been defined in sys/types.h" when winsock.h is included later and doesn't seem to be necessary anyhow. It's not needed under Mac neither. */ -#if !defined(__WXMAC__) && !defined(__CYGWIN__) && !defined(__WXWINCE__) +#if !defined(__WXMAC__) && !defined(__WXMSW__) && !defined(__WXWINCE__) #include #endif @@ -61,7 +61,7 @@ // include the header defining timeval: under Windows this struct is used only // with sockets so we need to include winsock.h which we do via windows.h -#ifdef __WXMSW__ +#ifdef __WINDOWS__ #include "wx/msw/wrapwin.h" #else #include // for timeval @@ -79,7 +79,7 @@ // define some symbols which winsock.h defines but traditional BSD headers // don't -#ifndef __WXMSW__ +#ifndef __WINDOWS__ #define SOCKET int #endif @@ -139,15 +139,23 @@ public: virtual void OnExit() = 0; + // create the socket implementation object matching this manager + 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 // value to determine what exactly should be monitored so it needs to be // set before calling these functions) + // + // the default event value is used just for the convenience of wxMSW + // implementation which doesn't use this parameter anyhow, it doesn't make + // sense to pass wxSOCKET_LOST for the Unix implementation which does use + // this parameter virtual void Install_Callback(wxSocketImpl *socket, - wxSocketNotify event = wxSOCKET_MAX_EVENT) = 0; + wxSocketNotify event = wxSOCKET_LOST) = 0; virtual void Uninstall_Callback(wxSocketImpl *socket, - wxSocketNotify event = wxSOCKET_MAX_EVENT) = 0; + wxSocketNotify event = wxSOCKET_LOST) = 0; virtual ~wxSocketManager() { } @@ -162,16 +170,12 @@ private: Base class for all socket implementations providing functionality common to BSD and Winsock sockets. - Objects of this class are not created directly but only via its static - Create() method which is implemented in port-specific code. + Objects of this class are not created directly but only via the factory + function wxSocketManager::CreateSocket(). */ class wxSocketImpl { public: - // static factory function: creates the low-level socket associated with - // the given wxSocket (and inherits its attributes such as timeout) - static wxSocketImpl *Create(wxSocketBase& wxsocket); - virtual ~wxSocketImpl(); // set various socket properties: all of those can only be called before @@ -281,6 +285,11 @@ public: // named) OnRequest() method void NotifyOnStateChange(wxSocketNotify event); + // called after reading/writing the data from/to the socket and should + // enable back the wxSOCKET_INPUT/OUTPUT_FLAG notifications if they were + // turned off when this data was first detected + virtual void ReenableEvents(wxSocketEventFlags flags) = 0; + // TODO: make these fields protected and provide accessors for those of // them that wxSocketBase really needs //protected: @@ -355,10 +364,10 @@ private: // socket is shut down wxSocketBase *m_wxsocket; - DECLARE_NO_COPY_CLASS(wxSocketImpl) + wxDECLARE_NO_COPY_CLASS(wxSocketImpl); }; -#if defined(__WXMSW__) +#if defined(__WINDOWS__) #include "wx/msw/private/sockmsw.h" #else #include "wx/unix/private/sockunix.h"