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
|