#include "wx/private/fdiodispatcher.h"
-class WXDLLIMPEXP_CORE wxEpollDispatcher : public wxFDIODispatcher
+struct epoll_event;
+
+class WXDLLIMPEXP_BASE wxEpollDispatcher : public wxFDIODispatcher
{
public:
// create a new instance of this class, can return NULL if
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);
- virtual bool Dispatch(int timeout = TIMEOUT_INFINITE);
+ virtual bool HasPending() const;
+ virtual int Dispatch(int timeout = TIMEOUT_INFINITE);
private:
// ctor is private, use Create()
wxEpollDispatcher(int epollDescriptor);
+ // common part of HasPending() and Dispatch(): calls epoll_wait() with the
+ // given timeout
+ int DoPoll(epoll_event *events, int numEvents, int timeout) const;
+
+
int m_epollDescriptor;
};