#ifndef QTUIMESSAGEPROCESSOR_H_
#define QTUIMESSAGEPROCESSOR_H_
+#include <QTime>
+#include <QTimer>
+
#include "abstractmessageprocessor.h"
class QtUiMessageProcessor : public AbstractMessageProcessor {
Q_OBJECT
public:
+ enum Mode {
+ TimerBased,
+ Concurrent
+ };
+
QtUiMessageProcessor(QObject *parent);
+ inline bool isProcessing() const { return _processing; }
+ inline Mode processMode() const { return _processMode; }
+
+ void reset();
+
+ public slots:
+ void process(Message &msg);
+ void process(QList<Message> &msgs);
+
+ private slots:
+ void processNextMessage();
- protected:
- void processMessage(Message &msg);
- void processMessages(QList<Message> &msgs);
+ private:
+ void checkForHighlight(Message &msg);
+ void startProcessing();
+ void updateProgress(bool start = false);
+ QList<QList<Message> > _processQueue;
+ QList<Message> _currentBatch;
+ QTimer _processTimer;
+ bool _processing;
+ Mode _processMode;
+ int _msgsProcessed, _msgCount;
+ QTime _progressTimer;
};
#endif