| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- /////////////////////////////////////////////////////////////////////////////
- // Name: wx/unix/private/epolldispatcher.h
- // Purpose: wxEpollDispatcher class
- // Authors: Lukasz Michalski
- // Created: April 2007
- // Copyright: (c) Lukasz Michalski
- // Licence: wxWindows licence
- /////////////////////////////////////////////////////////////////////////////
- #ifndef _WX_PRIVATE_EPOLLDISPATCHER_H_
- #define _WX_PRIVATE_EPOLLDISPATCHER_H_
- #include "wx/defs.h"
- #ifdef wxUSE_EPOLL_DISPATCHER
- #include "wx/private/fdiodispatcher.h"
- struct epoll_event;
- class WXDLLIMPEXP_BASE wxEpollDispatcher : public wxFDIODispatcher
- {
- public:
- // create a new instance of this class, can return NULL if
- // epoll() is not supported on this system
- //
- // 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 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;
- };
- #endif // wxUSE_EPOLL_DISPATCHER
- #endif // _WX_PRIVATE_SOCKETEVTDISPATCH_H_
|