File indexing completed on 2024-05-05 03:50:35

0001 // SPDX-License-Identifier: LGPL-2.1-or-later
0002 //
0003 // SPDX-FileCopyrightText: 2009 Eckhart Wörner <ewoerner@kde.org>
0004 //
0005 
0006 #ifndef GEOCUTE_SIMPLEDBUSINTERFACE_H
0007 #define GEOCUTE_SIMPLEDBUSINTERFACE_H
0008 
0009 #include <QList>
0010 #include <QObject>
0011 #include <QString>
0012 #include <QVariant>
0013 #include <QDBusConnection>
0014 #include <QDBusMessage>
0015 #include <QDBusPendingCall>
0016 
0017 
0018 
0019 namespace GeoCute
0020 {
0021 
0022 class SimpleDBusInterface : public QObject
0023 {
0024     Q_OBJECT
0025 
0026     public:
0027         SimpleDBusInterface(const QString& service, const QString& path,
0028             const QString& interface = QString(),
0029             const QDBusConnection& connection = QDBusConnection::sessionBus(),
0030             QObject* parent = 0);
0031         QDBusPendingCall asyncCall(const QString& method) const;
0032         QDBusMessage call(const QString& method,
0033             const QVariant& arg1 = QVariant(),
0034             const QVariant& arg2 = QVariant(),
0035             const QVariant& arg3 = QVariant(),
0036             const QVariant& arg4 = QVariant(),
0037             const QVariant& arg5 = QVariant(),
0038             const QVariant& arg6 = QVariant(),
0039             const QVariant& arg7 = QVariant(),
0040             const QVariant& arg8 = QVariant());
0041         void callWithCallback(const QString& message,
0042             const QList<QVariant>& args, QObject* receiver,
0043             const char* returnMethod, const char* errorMethod) const;
0044         void connect(const QString& name, QObject* receiver,
0045             const char* slot);
0046         QString interface() const;
0047         QString path() const;
0048         QString service() const;
0049             
0050     private:
0051         QDBusConnection p_connection;
0052         const QString p_interface;
0053         const QString p_path;
0054         const QString p_service;
0055 };
0056 
0057 }
0058 
0059 
0060 
0061 #endif