X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b46b1d59d6f69ad80dcf5955375578a6504d100a..d16619f8d0f0a3bff7dd51cf57d1ba0f70176309:/include/wx/private/fdiodispatcher.h diff --git a/include/wx/private/fdiodispatcher.h b/include/wx/private/fdiodispatcher.h index 26b5164a59..0f71d94fd6 100644 --- a/include/wx/private/fdiodispatcher.h +++ b/include/wx/private/fdiodispatcher.h @@ -39,6 +39,31 @@ enum wxFDIODispatcherEntryFlags wxFDIO_ALL = wxFDIO_INPUT | wxFDIO_OUTPUT | wxFDIO_EXCEPTION }; +// base class for wxSelectDispatcher and wxEpollDispatcher +class WXDLLIMPEXP_BASE wxFDIODispatcher +{ +public: + enum { TIMEOUT_INFINITE = -1 }; + + // register handler for the given descriptor with the dispatcher, return + // true on success or false on error + virtual bool RegisterFD(int fd, wxFDIOHandler *handler, int flags) = 0; + + // modify descriptor flags or handler, return true on success + virtual bool ModifyFD(int fd, wxFDIOHandler *handler, int flags) = 0; + + // unregister descriptor previously registered with RegisterFD(), the + // caller is responsible for deleting the returned handler pointer if + // necessary + virtual bool UnregisterFD(int fd, int flags) = 0; + + // loops waiting for an event to happen on any of the descriptors + virtual void RunLoop(int timeout) = 0; + + virtual ~wxFDIODispatcher() { } +}; + +//entry for wxFDIOHandlerMap struct wxFDIOHandlerEntry { wxFDIOHandlerEntry() @@ -64,34 +89,28 @@ WX_DECLARE_HASH_MAP( wxFDIOHandlerMap ); -// base class for wxSelectDispatcher and wxEpollDispatcher +// FDIODispatcher that holds map fd <-> FDIOHandler, this should be used if +// this map isn't maintained elsewhere already as it is usually needed anyhow // -// notice that all pure virtual functions for FD management have implementation +// notice that all functions for FD management have implementation // in the base class and should be called from the derived classes -class WXDLLIMPEXP_BASE wxFDIODispatcher -{ +class WXDLLIMPEXP_BASE wxMappedFDIODispatcher : public wxFDIODispatcher { public: - enum { TIMEOUT_INFINITE = -1 }; - // find the handler for the given fd, return NULL if none wxFDIOHandler *FindHandler(int fd) const; - // register handler for the given descriptor with the dispatcher, return // true on success or false on error - virtual bool RegisterFD(int fd, wxFDIOHandler *handler, int flags) = 0; + virtual bool RegisterFD(int fd, wxFDIOHandler *handler, int flags); // modify descriptor flags or handler, return true on success - virtual bool ModifyFD(int fd, wxFDIOHandler *handler, int flags) = 0; + virtual bool ModifyFD(int fd, wxFDIOHandler *handler, int flags); // unregister descriptor previously registered with RegisterFD(), the // caller is responsible for deleting the returned handler pointer if // necessary - virtual wxFDIOHandler *UnregisterFD(int fd, int flags) = 0; + virtual bool UnregisterFD(int fd, int flags); - // loops waiting for an event to happen on any of the descriptors - virtual void RunLoop(int timeout) = 0; - - virtual ~wxFDIODispatcher() { } + virtual ~wxMappedFDIODispatcher() { } protected: // the fd -> handler map containing all the registered handlers