// Authors: Lukasz Michalski
// Created: December 2006
// Copyright: (c) Lukasz Michalski
-// RCS-ID: $Id$
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#define _WX_PRIVATE_FDIODISPATCHER_H_
#include "wx/hashmap.h"
-
-// handler used to process events on descriptors
-class wxFDIOHandler
-{
-public:
- // called when descriptor is available for non-blocking read
- virtual void OnReadWaiting() = 0;
-
- // called when descriptor is available for non-blocking write
- virtual void OnWriteWaiting() = 0;
-
- // called when there is exception on descriptor
- virtual void OnExceptionWaiting() = 0;
-
- // virtual dtor for the base class
- virtual ~wxFDIOHandler() { }
-};
+#include "wx/private/fdiohandler.h"
// those flags describes sets where descriptor should be added
enum wxFDIODispatcherEntryFlags
// unregister descriptor previously registered with RegisterFD()
virtual bool UnregisterFD(int fd) = 0;
+ // check if any events are currently available without dispatching them
+ virtual bool HasPending() const = 0;
+
// wait for an event for at most timeout milliseconds and process it;
- // return true if we processed any events or false if timeout expired
- // without anything happening
- virtual bool Dispatch(int timeout = TIMEOUT_INFINITE) = 0;
+ // return the number of events processed (possibly 0 if timeout expired) or
+ // -1 if an error occurred
+ virtual int Dispatch(int timeout = TIMEOUT_INFINITE) = 0;
virtual ~wxFDIODispatcher() { }
};