Libksysguard

SensorDaemonInterface_p.h
1 /*
2  Copyright (C) 2020 Arjen Hiemstra <[email protected]>
3 
4  This library is free software; you can redistribute it and/or
5  modify it under the terms of the GNU Library General Public
6  License as published by the Free Software Foundation; either
7  version 2 of the License, or (at your option) any later version.
8 
9  This library is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12  Library General Public License for more details.
13 
14  You should have received a copy of the GNU Library General Public License
15  along with this library; see the file COPYING.LIB. If not, write to
16  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17  Boston, MA 02110-1301, USA.
18 */
19 
20 #pragma once
21 
22 #include "SensorInfo_p.h"
23 #include <QObject>
24 #include <memory>
25 
27 
28 namespace KSysGuard
29 {
30 /**
31  * Internal helper class to communicate with the daemon.
32  *
33  * This is mostly for convenience on top of the auto-generated KSysGuardDaemon
34  * D-Bus interface.
35  */
37 {
38  Q_OBJECT
39 
40 public:
42  ~SensorDaemonInterface() override;
43 
44  void requestMetaData(const QString &sensorId);
45  void requestMetaData(const QStringList &sensorIds);
46  Q_SIGNAL void metaDataChanged(const QString &sensorId, const SensorInfo &info);
47  void requestValue(const QString &sensorId);
48  Q_SIGNAL void valueChanged(const QString &sensorId, const QVariant &value);
49 
50  QDBusPendingCallWatcher *allSensors() const;
51 
52  void subscribe(const QString &sensorId);
53  void subscribe(const QStringList &sensorIds);
54  void unsubscribe(const QString &sensorId);
55  void unsubscribe(const QStringList &sensorIds);
56 
57  Q_SIGNAL void sensorAdded(const QString &sensorId);
58  Q_SIGNAL void sensorRemoved(const QString &sensorId);
59 
60  static SensorDaemonInterface *instance();
61 
62 private:
63  void onMetaDataChanged(const QHash<QString, SensorInfo> &metaData);
64  void onValueChanged(const SensorDataList &values);
65  void reconnect();
66 
67  class Private;
68  const std::unique_ptr<Private> d;
69 };
70 
71 }
QVector< V > values(const QMultiHash< K, V > &c)
Q_OBJECTQ_OBJECT
Internal helper class to communicate with the daemon.
Q_SIGNALQ_SIGNAL
QObject * parent() const const
This file is part of the KDE documentation.
Documentation copyright © 1996-2021 The KDE developers.
Generated on Tue Mar 2 2021 02:46:14 by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.