+private:
+ typedef void (wxFDIOHandler::*Callback)();
+
+ // the FD sets indices
+ enum
+ {
+ Read,
+ Write,
+ Except,
+ Max
+ };
+
+ // the sets used with select()
+ fd_set m_fds[Max];
+
+ // the wxFDIO_XXX flags, functions and names (used for debug messages only)
+ // corresponding to the FD sets above
+ static int ms_flags[Max];
+ static const char *ms_names[Max];
+ static Callback ms_handlers[Max];
+};
+
+class WXDLLIMPEXP_BASE wxSelectDispatcher : public wxMappedFDIODispatcher
+{
+public:
+ // returns the unique instance of this class, the pointer shouldn't be
+ // deleted and is normally never NULL
+ static wxSelectDispatcher *Get();
+
+ // if we have any registered handlers, check for any pending events to them
+ // and dispatch them -- this is used from wxX11 and wxDFB event loops
+ // implementation
+ static void DispatchPending();
+
+ // implement pure virtual methods of the base class
+ virtual bool RegisterFD(int fd, wxFDIOHandler *handler, int flags = wxFDIO_ALL);
+ virtual bool ModifyFD(int fd, wxFDIOHandler *handler, int flags = wxFDIO_ALL);
+ virtual bool UnregisterFD(int fd, int flags = wxFDIO_ALL);
+ virtual void RunLoop(int timeout = TIMEOUT_INFINITE);