implement event loop for console applications (heavily modified patch 1715735)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46029 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
47
include/wx/unix/private/epolldispatcher.h
Normal file
47
include/wx/unix/private/epolldispatcher.h
Normal file
@@ -0,0 +1,47 @@
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Name: wx/private/epolldispatcher.h
|
||||
// Purpose: wxEpollDispatcher class
|
||||
// Authors: Lukasz Michalski
|
||||
// Created: April 2007
|
||||
// Copyright: (c) Lukasz Michalski
|
||||
// RCS-ID: $Id$
|
||||
// Licence: wxWindows licence
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef _WX_PRIVATE_EPOLLDISPATCHER_H_
|
||||
#define _WX_PRIVATE_EPOLLDISPATCHER_H_
|
||||
|
||||
#include "wx/defs.h"
|
||||
|
||||
#ifdef HAVE_SYS_EPOLL_H
|
||||
|
||||
#include "wx/private/fdiodispatcher.h"
|
||||
|
||||
class WXDLLIMPEXP_CORE wxEpollDispatcher : public wxFDIODispatcher
|
||||
{
|
||||
public:
|
||||
// get pointer to the unique instance of this class, can return NULL if
|
||||
// epoll() is not supported on this system
|
||||
//
|
||||
// do not delete the returned pointer
|
||||
static wxEpollDispatcher *Get();
|
||||
|
||||
// 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 wxFDIOHandler *UnregisterFD(int fd, int flags = wxFDIO_ALL);
|
||||
virtual void RunLoop(int timeout = TIMEOUT_INFINITE);
|
||||
|
||||
private:
|
||||
// ctor is private, use Get()
|
||||
wxEpollDispatcher();
|
||||
|
||||
// return true if the object was successfully initialized
|
||||
bool IsOk() const { return m_epollDescriptor != -1; }
|
||||
|
||||
int m_epollDescriptor;
|
||||
};
|
||||
|
||||
#endif // HAVE_SYS_EPOLL_H
|
||||
|
||||
#endif // _WX_PRIVATE_SOCKETEVTDISPATCH_H_
|
Reference in New Issue
Block a user