/////////////////////////////////////////////////////////////////////////////
-// Name: wx/private/epolldispatcher.h
+// Name: wx/unix/private/epolldispatcher.h
// Purpose: wxEpollDispatcher class
// Authors: Lukasz Michalski
// Created: April 2007
#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
// the caller should delete the returned pointer
static wxEpollDispatcher *Create();
+ virtual ~wxEpollDispatcher();
+
// implement base class pure virtual methods
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 void 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;
};