ZTStats/Sources/DirParserThread.h
2024-08-09 12:11:50 -04:00

47 lines
1.3 KiB
C++

#ifndef DIRPARSERTHREAD_H
#define DIRPARSERTHREAD_H
#include "GlobalDefine.h"
#include <QDir>
#include <QReadWriteLock>
#include "TrainLogFileMgr.h"
#include "ReportSettingsData.h"
class CDirParserThread : public QObject
{
Q_OBJECT
public:
CDirParserThread();
// void SetParsingInfo(QDir dir,QString Filter,bool KeepData = false);
void SetParsingInfo(CReportProgramSettingsData ReportSettings, CReportConfigData ReportFilters, QList<QList<CLogElement *> *> *ReportDataContainer);
void KillThread();
int ParseDir(QDir dir, QList<CLogElement*> *Container);
void GatherReportData(CReportProgramSettingsData ReportSettings, CReportConfigData ReportFilters);
QStringList FilterDirectories(QDir BaseDir, QDate StartDate, QDate EndDate);
private:
QDir mRootDir;
bool mKeepData;
QReadWriteLock mMutex;
bool mExecThread;
QString mFilter;
QList<QStringList> mReportDirectoriesList;
CReportProgramSettingsData mReportSettings;
CReportConfigData mReportFilters;
QList<QList<CLogElement*>*> *mReportDataContainer;
public slots:
void ParseDirectories();
signals:
void NewLogParsed(QString,bool);
void NewLogParsed(CLogElement*);
void ParsingFinished(int);
void EmptyDirParsed();
void ThreadAborted();
void ReportProgressStatus(QString);
};
#endif // DIRPARSERTHREAD_H