File indexing completed on 2024-05-05 05:48:56
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 <QByteArray> 0010 #include <QObject> 0011 #include <QString> 0012 0013 #include "logFile.h" 0014 0015 namespace KIO 0016 { 0017 class Job; 0018 class FileJob; 0019 } 0020 class KDirWatch; 0021 /** 0022 * TODO Inherits from LogFileReader 0023 */ 0024 class KioLogFileReader : public QObject 0025 { 0026 Q_OBJECT 0027 0028 public: 0029 explicit KioLogFileReader(const LogFile &logFile); 0030 0031 ~KioLogFileReader() override; 0032 0033 void open(); 0034 void close(); 0035 0036 Q_SIGNALS: 0037 void lineRead(const QString &); 0038 0039 private Q_SLOTS: 0040 void openDone(KIO::Job *job); 0041 void closeDone(KIO::Job *job); 0042 void dataReceived(KIO::Job *job, const QByteArray &data); 0043 void mimetypeReceived(KIO::Job *job, const QString &type); 0044 0045 void watchFile(const QString &path); 0046 0047 private: 0048 void emitCompleteLines(); 0049 const LogFile mLogFile; 0050 0051 KIO::FileJob *mFileJob = nullptr; 0052 0053 QString mBuffer; 0054 qulonglong mTotalRead = 0; 0055 0056 KDirWatch *const mFileWatch; 0057 };