Go
to the documentation of this file.
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042 #ifndef QABSTRACTEVENTDISPATCHER_H
00043 #define QABSTRACTEVENTDISPATCHER_H
00044
00045 #include <QtCore/qobject.h>
00046 #include <QtCore/qeventloop.h>
00047
00048 QT_BEGIN_HEADER
00049
00050 QT_BEGIN_NAMESPACE
00051
00052 QT_MODULE(Core)
00053
00054 class QAbstractEventDispatcherPrivate;
00055 class QSocketNotifier;
00056 template <typename T1, typename T2> struct QPair;
00057
00058 class Q_CORE_EXPORT QAbstractEventDispatcher : public QObject
00059 {
00060 Q_OBJECT
00061 Q_DECLARE_PRIVATE(QAbstractEventDispatcher)
00062
00063 public:
00064 typedef QPair<int, int> TimerInfo;
00065
00066 explicit QAbstractEventDispatcher(QObject *parent = 0);
00067 ~QAbstractEventDispatcher();
00068
00069 static QAbstractEventDispatcher *instance(QThread *thread = 0);
00070
00071 virtual bool processEvents(QEventLoop::ProcessEventsFlags flags) = 0;
00072 virtual bool hasPendingEvents() = 0;
00073
00074 virtual void registerSocketNotifier(QSocketNotifier *notifier) = 0;
00075 virtual void unregisterSocketNotifier(QSocketNotifier *notifier) = 0;
00076
00077 int registerTimer(int interval, QObject *object);
00078 virtual void registerTimer(int timerId, int interval, QObject *object) = 0;
00079 virtual bool unregisterTimer(int timerId) = 0;
00080 virtual bool unregisterTimers(QObject *object) = 0;
00081 virtual QList<TimerInfo> registeredTimers(QObject *object) const = 0;
00082
00083 virtual void wakeUp() = 0;
00084 virtual void interrupt() = 0;
00085 virtual void flush() = 0;
00086
00087 virtual void startingUp();
00088 virtual void closingDown();
00089
00090 typedef bool(*EventFilter)(void *message);
00091 EventFilter setEventFilter(EventFilter filter);
00092 bool filterEvent(void *message);
00093
00094 Q_SIGNALS:
00095 void aboutToBlock();
00096 void awake();
00097
00098 protected:
00099 QAbstractEventDispatcher(QAbstractEventDispatcherPrivate &,
00100 QObject *parent);
00101 };
00102
00103 QT_END_NAMESPACE
00104
00105 QT_END_HEADER
00106
00107 #endif // QABSTRACTEVENTDISPATCHER_H