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"