fort/src/ui/log/logmanager.h

59 lines
1.2 KiB
C
Raw Normal View History

2017-11-10 13:36:29 +00:00
#ifndef LOGMANAGER_H
#define LOGMANAGER_H
2017-11-17 03:46:35 +00:00
#include <QAbstractItemModel>
2017-11-10 13:36:29 +00:00
#include <QObject>
2017-11-17 03:46:35 +00:00
class AppBlockedModel;
2017-11-10 13:36:29 +00:00
class DriverWorker;
class LogBuffer;
2017-11-17 03:46:35 +00:00
class LogEntry;
2017-11-10 13:36:29 +00:00
class LogManager : public QObject
{
Q_OBJECT
Q_PROPERTY(QString errorMessage READ errorMessage NOTIFY errorMessageChanged)
public:
explicit LogManager(DriverWorker *driverWorker,
QObject *parent = nullptr);
QString errorMessage() const { return m_errorMessage; }
signals:
void errorMessageChanged();
public slots:
2017-11-17 03:46:35 +00:00
QAbstractItemModel *appBlockedModel() const;
2017-11-10 13:36:29 +00:00
void setLogReadingEnabled(bool enabled);
private slots:
void processLogBuffer(LogBuffer *logBuffer, bool success,
const QString &errorMessage);
private:
void setErrorMessage(const QString &errorMessage);
void setupDriverWorker();
void readLogAsync(LogBuffer *logBuffer);
void cancelAsyncIo();
2017-11-17 03:46:35 +00:00
LogBuffer *getFreeBuffer();
void readLogEntries(LogBuffer *logBuffer);
2017-11-10 13:36:29 +00:00
private:
bool m_logReadingEnabled;
DriverWorker *m_driverWorker;
2017-11-17 03:46:35 +00:00
QList<LogBuffer *> m_freeBuffers;
AppBlockedModel *m_appBlockedModel;
2017-11-10 13:36:29 +00:00
QString m_errorMessage;
};
#endif // LOGMANAGER_H