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 #include "SimpleDBusInterface.h"
0007 
0008 
0009 
0010 using namespace GeoCute;
0011 
0012 SimpleDBusInterface::SimpleDBusInterface(const QString& service,
0013     const QString& path, const QString& interface,
0014     const QDBusConnection& connection, QObject* parent)
0015     : QObject(parent), p_connection(connection), p_interface(interface),
0016       p_path(path), p_service(service)
0017 {
0018 }
0019 
0020 QDBusPendingCall SimpleDBusInterface::asyncCall(const QString& method) const
0021 {
0022     const QDBusMessage message
0023         = QDBusMessage::createMethodCall(p_service, p_path, p_interface, method);
0024     return p_connection.asyncCall(message);
0025 }
0026 
0027 QDBusMessage SimpleDBusInterface::call(const QString& method,
0028     const QVariant& arg1, const QVariant& arg2, const QVariant& arg3,
0029     const QVariant& arg4, const QVariant& arg5, const QVariant& arg6,
0030     const QVariant& arg7, const QVariant& arg8)
0031 {
0032     QDBusMessage message = QDBusMessage::createMethodCall(p_service, p_path,
0033         p_interface, method);
0034     QList<QVariant> arguments;
0035     if (arg1.isValid())
0036         arguments.append(arg1);
0037     if (arg2.isValid())
0038         arguments.append(arg1);
0039     if (arg3.isValid())
0040         arguments.append(arg1);
0041     if (arg4.isValid())
0042         arguments.append(arg1);
0043     if (arg5.isValid())
0044         arguments.append(arg1);
0045     if (arg6.isValid())
0046         arguments.append(arg1);
0047     if (arg7.isValid())
0048         arguments.append(arg1);
0049     if (arg8.isValid())
0050         arguments.append(arg1);
0051     message.setArguments(arguments);
0052     return p_connection.call(message);
0053 }
0054 
0055 void SimpleDBusInterface::callWithCallback(const QString& method,
0056     const QList<QVariant>& args, QObject* receiver, const char* returnMethod,
0057     const char* errorMethod) const
0058 {
0059     QDBusMessage message
0060         = QDBusMessage::createMethodCall(p_service, p_path, p_interface, method);
0061     message.setArguments(args);
0062     p_connection.callWithCallback(message, receiver, returnMethod, errorMethod);
0063 }
0064 
0065 void SimpleDBusInterface::connect(const QString& name, QObject* receiver,
0066     const char* slot)
0067 {
0068     p_connection.connect(p_service, p_path, p_interface, name, receiver, slot);
0069 }
0070 
0071 QString SimpleDBusInterface::interface() const
0072 {
0073     return p_interface;
0074 }
0075 
0076 QString SimpleDBusInterface::path() const
0077 {
0078     return p_path;
0079 }
0080 
0081 QString SimpleDBusInterface::service() const
0082 {
0083     return p_service;
0084 }
0085 
0086 
0087 
0088 #include "moc_SimpleDBusInterface.cpp"