X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a9d859df6f433c962a9ed777d2c26da6ce714441..c363ead1e206e599d6564ac939ac7342d165e0e3:/src/common/socketiohandler.cpp?ds=sidebyside diff --git a/src/common/socketiohandler.cpp b/src/common/socketiohandler.cpp index 97af802a37..87a9c457bb 100644 --- a/src/common/socketiohandler.cpp +++ b/src/common/socketiohandler.cpp @@ -29,26 +29,6 @@ // implementation // ============================================================================ -// ---------------------------------------------------------------------------- -// wxSocketImplFDIO -// ---------------------------------------------------------------------------- - -class wxSocketImplFDIO : public wxSocketImplUnix -{ -public: - wxSocketImplFDIO(wxSocketBase& wxsocket) - : wxSocketImplUnix(wxsocket) - { - } - - int GetFlags() const { return m_flags; } - void RemoveFlag(wxFDIODispatcherEntryFlags flag) { m_flags &= ~flag; } - void AddFlag(wxFDIODispatcherEntryFlags flag) { m_flags |= flag; } - -private: - int m_flags; -}; - // ---------------------------------------------------------------------------- // wxSocketSelectManager // ---------------------------------------------------------------------------- @@ -56,11 +36,6 @@ private: class wxSocketSelectManager : public wxSocketFDBasedManager { public: - virtual wxSocketImpl *CreateSocket(wxSocketBase& wxsocket) - { - return new wxSocketImplFDIO(wxsocket); - } - virtual void Install_Callback(wxSocketImpl *socket, wxSocketNotify event); virtual void Uninstall_Callback(wxSocketImpl *socket, wxSocketNotify event); }; @@ -68,7 +43,7 @@ public: void wxSocketSelectManager::Install_Callback(wxSocketImpl *socket_, wxSocketNotify event) { - wxSocketImplFDIO * const socket = static_cast(socket_); + wxSocketImplUnix * const socket = static_cast(socket_); const int fd = socket->m_fd; @@ -85,20 +60,20 @@ void wxSocketSelectManager::Install_Callback(wxSocketImpl *socket_, // register it when it's used for the first time, update it if it had been // previously registered - const bool registerHandler = socket->GetFlags() == 0; + const bool alreadyRegistered = socket->HasAnyEnabledCallbacks(); - socket->AddFlag(d == FD_INPUT ? wxFDIO_INPUT : wxFDIO_OUTPUT); + socket->EnableCallback(d == FD_INPUT ? wxFDIO_INPUT : wxFDIO_OUTPUT); - if ( registerHandler ) - dispatcher->RegisterFD(fd, socket, socket->GetFlags()); + if ( alreadyRegistered ) + dispatcher->ModifyFD(fd, socket, socket->GetEnabledCallbacks()); else - dispatcher->ModifyFD(fd, socket, socket->GetFlags()); + dispatcher->RegisterFD(fd, socket, socket->GetEnabledCallbacks()); } void wxSocketSelectManager::Uninstall_Callback(wxSocketImpl *socket_, wxSocketNotify event) { - wxSocketImplFDIO * const socket = static_cast(socket_); + wxSocketImplUnix * const socket = static_cast(socket_); const SocketDir d = GetDirForEvent(socket, event); @@ -115,16 +90,12 @@ void wxSocketSelectManager::Uninstall_Callback(wxSocketImpl *socket_, if ( !dispatcher ) return; - socket->RemoveFlag(flag); + socket->DisableCallback(flag); - if ( !socket->GetFlags() ) - { + if ( !socket->HasAnyEnabledCallbacks() ) dispatcher->UnregisterFD(fd); - } else - { - dispatcher->ModifyFD(fd, socket, socket->GetFlags()); - } + dispatcher->ModifyFD(fd, socket, socket->GetEnabledCallbacks()); } // set the wxBase variable to point to our wxSocketManager implementation