LCOV - code coverage report
Current view: top level - dbus-lib - dbuspolicy.h (source / functions) Coverage Total Hit
Test: QtApplicationManager Lines: 100.0 % 1 1
Test Date: 2024-11-23 10:23:45 Functions: - 0 0
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: - 0 0

             Branch data     Line data    Source code
       1                 :             : // Copyright (C) 2023 The Qt Company Ltd.
       2                 :             : // Copyright (C) 2019 Luxoft Sweden AB
       3                 :             : // Copyright (C) 2018 Pelagicore AG
       4                 :             : // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
       5                 :             : 
       6                 :             : #ifndef DBUSPOLICY_H
       7                 :             : #define DBUSPOLICY_H
       8                 :             : 
       9                 :             : #include <functional>
      10                 :             : 
      11                 :             : #include <QtAppManCommon/global.h>
      12                 :             : #include <QtCore/QVariantMap>
      13                 :             : #include <QtCore/QByteArray>
      14                 :             : 
      15                 :             : QT_FORWARD_DECLARE_CLASS(QDBusAbstractAdaptor)
      16                 :             : 
      17                 :             : QT_BEGIN_NAMESPACE_AM
      18                 :             : 
      19                 :             : class DBusPolicy
      20                 :             : {
      21                 :             : public:
      22                 :             :     ~DBusPolicy();
      23                 :             :     static DBusPolicy *instance();
      24                 :             :     static DBusPolicy *createInstance(const std::function<QStringList(qint64)> &applicationIdsForPid,
      25                 :             :                                       const std::function<QStringList(const QString &)> &capabilitiesForApplicationId);
      26                 :             : 
      27                 :             :     bool add(const QDBusAbstractAdaptor *dbusAdaptor, const QVariantMap &yamlFragment);
      28                 :             :     bool check(const QDBusAbstractAdaptor *dbusAdaptor, const QByteArray &function);
      29                 :             : 
      30                 :             : private:
      31                 :             :     Q_DISABLE_COPY_MOVE(DBusPolicy)
      32                 :          52 :     DBusPolicy() = default;
      33                 :             :     static DBusPolicy *s_instance;
      34                 :             : 
      35                 :             :     std::function<QStringList(qint64)> m_applicationIdsForPid;
      36                 :             :     std::function<QStringList(const QString &)> m_capabilitiesForApplicationId;
      37                 :             : 
      38                 :             :     struct DBusPolicyEntry
      39                 :             :     {
      40                 :             :         QList<uint> m_uids;
      41                 :             :         QStringList m_executables;
      42                 :             :         QStringList m_capabilities;
      43                 :             :     };
      44                 :             :     QHash<const QDBusAbstractAdaptor *, QMap<QByteArray, DBusPolicyEntry>> m_policies;
      45                 :             : };
      46                 :             : 
      47                 :             : QT_END_NAMESPACE_AM
      48                 :             : 
      49                 :             : 
      50                 :             : #endif // DBUSPOLICY_H
        

Generated by: LCOV version 2.0-1