File indexing completed on 2024-05-05 10:08:42
0001 /* 0002 SPDX-FileCopyrightText: 2007 Nicolas Ternisien <nicolas.ternisien@gmail.com> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #pragma once 0008 0009 #include <QList> 0010 #include <QString> 0011 #include <QStringList> 0012 0013 #include "globals.h" 0014 0015 #include "logLine.h" 0016 0017 #include "logFile.h" 0018 #include "logViewColumn.h" 0019 #include "logViewColumns.h" 0020 0021 #include "analyzer.h" 0022 0023 class LogFileReader; 0024 class LogMode; 0025 0026 class FileAnalyzer : public Analyzer 0027 { 0028 Q_OBJECT 0029 0030 public: 0031 explicit FileAnalyzer(LogMode *logMode); 0032 0033 ~FileAnalyzer() override; 0034 0035 void watchLogFiles(bool enabled) override; 0036 0037 void setLogFiles(const QVector<LogFile> &logFiles) override; 0038 0039 protected: 0040 virtual LogFileReader *createLogFileReader(const LogFile &logFile) = 0; 0041 virtual Analyzer::LogFileSortMode logFileSortMode() = 0; 0042 0043 virtual LogLine *parseMessage(const QString &logLine, const LogFile &originalFile) = 0; 0044 0045 private: 0046 void deleteLogFiles(); 0047 0048 /** 0049 * Parse and insert the buffered lines in the model 0050 * Returns the count of inserted lines 0051 */ 0052 int insertLines(const QStringList &bufferedLines, const LogFile &logFile, ReadingMode readingMode); 0053 0054 /** 0055 * Parse and insert a line in the model 0056 * Returns false if it was not inserted, true if it was 0057 */ 0058 bool insertLine(const QString &buffer, const LogFile &originalFile, ReadingMode readingMode); 0059 0060 private Q_SLOTS: 0061 void logFileChanged(LogFileReader *logFileReader, Analyzer::ReadingMode readingMode, const QStringList &content); 0062 0063 protected: 0064 QList<LogFileReader *> mLogFileReaders; 0065 };