1 /*
2     SPDX-FileCopyrightText: 2007 Nicolas Ternisien <nicolas.ternisien@gmail.com>
3     SPDX-FileCopyrightText: 2015 Vyacheslav Matyushin
4 
5     SPDX-License-Identifier: GPL-2.0-or-later
6 */
7 
8 #pragma once
9 
10 /**
11  * Journald Log Mode Identifier
12  */
13 #define JOURNALD_LOG_MODE_ID "journaldLogMode"
14 
15 /**
16  * Journald Log Icon
17  */
18 #define JOURNALD_MODE_ICON "preferences-system-startup"
19 
20 #include <QList>
21 
22 #include "logFile.h"
23 #include "logMode.h"
24 
25 #include "journaldTypes.h"
26 
27 using namespace JournaldTypes;
28 
Q_DECLARE_METATYPE(JournaldAnalyzerOptions)29 Q_DECLARE_METATYPE(JournaldAnalyzerOptions)
30 
31 class JournaldLogMode : public LogMode
32 {
33     Q_OBJECT
34 
35 public:
36     explicit JournaldLogMode();
37 
38     Analyzer *createAnalyzer(const QVariant &analyzerOptions = QVariant()) override;
39 
40     QVector<LogFile> createLogFiles() override;
41 
42     void updateJournalFilters(const JournalAddress &address, const JournalFilters &filters);
43     JournalFilters filters(const JournalAddress &address) const;
44 
45 private:
46     QMap<JournalAddress, JournalFilters> mRemoteJournalFilters;
47 };
48 
49