File indexing completed on 2025-01-19 13:50:56
0001 /* 0002 SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0003 SPDX-FileCopyrightText: 2019-2022 Harald Sitter <sitter@kde.org> 0004 */ 0005 0006 #pragma once 0007 0008 #include <QByteArray> 0009 #include <QHash> 0010 #include <QJsonDocument> 0011 #include <QString> 0012 0013 #include "memory.h" 0014 0015 class Coredump 0016 { 0017 public: 0018 using EntriesHash = QHash<QByteArray, QByteArray>; 0019 0020 Coredump(QByteArray cursor, EntriesHash data); 0021 explicit Coredump(const QJsonDocument &document); 0022 0023 ~Coredump() = default; 0024 0025 // In a function cause it is used in more than one location. 0026 static QByteArray keyFilename(); 0027 0028 // Other bits and bobs 0029 const QByteArray m_cursor; 0030 const EntriesHash m_rawData; 0031 0032 // Journal Entry values 0033 const uid_t uid = 0; 0034 const pid_t pid = -1; 0035 const QString exe; 0036 const QString filename; // core dump file if available (may be /dev/null if the core is stored in journal directly) 0037 const QString systemd_unit; 0038 0039 private: 0040 static EntriesHash documentToHash(const QJsonDocument &document); 0041 Q_DISABLE_COPY_MOVE(Coredump) 0042 };