Phosphor
Qt6 / Wayland library suite for window-management tools
 
Loading...
Searching...
No Matches
Client.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2026 fuddlesworth
2// SPDX-License-Identifier: LGPL-2.1-or-later
3
4#pragma once
5
6#include <PhosphorDBus/phosphordbus_export.h>
7
8#include <QDBusConnection>
9#include <QDBusMessage>
10#include <QDBusPendingCall>
11#include <QString>
12#include <QVariantList>
13
14class QObject;
15class QLoggingCategory;
16
17namespace PhosphorDBus {
18
35class PHOSPHORDBUS_EXPORT Client
36{
37public:
49 Client(QDBusConnection connection, QString service, QString objectPath, const QLoggingCategory* log = nullptr);
50
51 QDBusConnection connection() const
52 {
53 return m_connection;
54 }
55 QString service() const
56 {
57 return m_service;
58 }
59 QString objectPath() const
60 {
61 return m_objectPath;
62 }
63
77 void fireAndForget(QObject* parent, const QString& interface, const QString& method, const QVariantList& args,
78 const QString& logContext = {}) const;
79
87 void sendOneWay(const QString& interface, const QString& method, const QVariantList& args = {}) const;
88
95 QDBusPendingCall asyncCall(const QString& interface, const QString& method, const QVariantList& args = {}) const;
96
107 QDBusMessage syncCall(const QString& interface, const QString& method, const QVariantList& args = {},
108 int timeoutMs = -1) const;
109
116 QDBusMessage createCall(const QString& interface, const QString& method, const QVariantList& args = {}) const;
117
118private:
119 QDBusConnection m_connection;
120 QString m_service;
121 QString m_objectPath;
122 const QLoggingCategory* m_log;
123};
124
125} // namespace PhosphorDBus
A lightweight, service-agnostic D-Bus method-call client.
Definition Client.h:36
void sendOneWay(const QString &interface, const QString &method, const QVariantList &args={}) const
Send a one-way notification with no expected reply.
Client(QDBusConnection connection, QString service, QString objectPath, const QLoggingCategory *log=nullptr)
QDBusConnection connection() const
Definition Client.h:51
QString objectPath() const
Definition Client.h:59
QDBusMessage createCall(const QString &interface, const QString &method, const QVariantList &args={}) const
Build (but do not send) a method-call message for this target.
QDBusMessage syncCall(const QString &interface, const QString &method, const QVariantList &args={}, int timeoutMs=-1) const
Blocking method call with an explicit timeout.
QDBusPendingCall asyncCall(const QString &interface, const QString &method, const QVariantList &args={}) const
Issue an async method call and return the pending result.
void fireAndForget(QObject *parent, const QString &interface, const QString &method, const QVariantList &args, const QString &logContext={}) const
Fire-and-forget async call with error logging.
QString service() const
Definition Client.h:55
Definition Client.h:17