QDBusConnectionInterface Class
Die Klasse QDBusConnectionInterface ermöglicht den Zugriff auf den D-Bus-Bus-Daemon-Dienst. Mehr...
Kopfzeile: | #include <QDBusConnectionInterface> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS DBus) target_link_libraries(mytarget PRIVATE Qt6::DBus) |
qmake: | QT += dbus |
Vererbt: | QDBusAbstractInterface |
Öffentliche Typen
enum | RegisterServiceReply { ServiceNotRegistered, ServiceRegistered, ServiceQueued } |
enum | ServiceQueueOptions { DontQueueService, QueueService, ReplaceExistingService } |
enum | ServiceReplacementOptions { DontAllowReplacement, AllowReplacement } |
Eigenschaften
- activatableServiceNames : const QDBusReply<QStringList>
- registeredServiceNames : const QDBusReply<QStringList>
Öffentliche Slots
QDBusReply<QStringList> | activatableServiceNames() const |
QDBusReply<bool> | isServiceRegistered(const QString &serviceName) const |
QDBusReply<QDBusConnectionInterface::RegisterServiceReply> | registerService(const QString &serviceName, QDBusConnectionInterface::ServiceQueueOptions qoption = DontQueueService, QDBusConnectionInterface::ServiceReplacementOptions roption = DontAllowReplacement) |
QDBusReply<QStringList> | registeredServiceNames() const |
QDBusReply<QString> | serviceOwner(const QString &name) const |
QDBusReply<uint> | servicePid(const QString &serviceName) const |
QDBusReply<uint> | serviceUid(const QString &serviceName) const |
QDBusReply<void> | startService(const QString &name) |
QDBusReply<bool> | unregisterService(const QString &serviceName) |
Signale
void | callWithCallbackFailed(const QDBusError &error, const QDBusMessage &call) |
void | serviceRegistered(const QString &service) |
void | serviceUnregistered(const QString &service) |
Detaillierte Beschreibung
Der D-Bus-Bus-Server-Daemon stellt eine spezielle Schnittstelle org.freedesktop.DBus
zur Verfügung, über die Clients auf bestimmte Eigenschaften des Busses zugreifen können, z. B. auf die aktuelle Liste der angeschlossenen Clients. Die Klasse QDBusConnectionInterface ermöglicht den Zugriff auf diese Schnittstelle.
Die gebräuchlichsten Verwendungen dieser Klasse sind die Registrierung und Deregistrierung von Dienstnamen auf dem Bus mit den Funktionen registerService() und unregisterService(), die Abfrage vorhandener Namen mit den Funktionen isServiceRegistered(), registeredServiceNames() und serviceOwner() und der Empfang von Benachrichtigungen über die Registrierung oder Deregistrierung eines Clients mit den Signalen serviceRegistered(), serviceUnregistered() und serviceOwnerChanged().
Dokumentation der Mitgliedstypen
enum QDBusConnectionInterface::RegisterServiceReply
Die möglichen Rückgabewerte von registerService():
Konstante | Wert | Beschreibung |
---|---|---|
QDBusConnectionInterface::ServiceNotRegistered | 0 | Der Aufruf ist fehlgeschlagen und der Dienstname wurde nicht registriert. |
QDBusConnectionInterface::ServiceRegistered | 1 | Der Aufrufer ist jetzt der Besitzer des Dienstnamens. |
QDBusConnectionInterface::ServiceQueued | 2 | Der Aufrufer hat das Flag QueueService angegeben und der Dienst wurde bereits registriert, so dass wir uns in der Warteschlange befinden. |
Das Signal serviceRegistered() wird ausgegeben, wenn der Dienst von dieser Anwendung übernommen wird.
enum QDBusConnectionInterface::ServiceQueueOptions
Flags, die festlegen, wie sich eine Dienstregistrierung verhalten soll, falls der Dienstname bereits registriert ist.
Konstante | Wert | Beschreibung |
---|---|---|
QDBusConnectionInterface::DontQueueService | 0 | Wenn eine Anwendung einen Namen anfordert, der bereits registriert ist, wird keine Warteschlangenbildung durchgeführt. Der registeredService()-Aufruf wird einfach fehlschlagen. Dies ist die Standardeinstellung. |
QDBusConnectionInterface::QueueService | 1 | Versucht, den angeforderten Dienst zu registrieren, versucht aber nicht, ihn zu ersetzen, wenn eine andere Anwendung ihn bereits registriert hat. Stattdessen wird diese Anwendung einfach in die Warteschlange gestellt, bis sie aufgegeben wird. Wenn dies geschieht, wird das Signal serviceRegistered() ausgegeben. |
QDBusConnectionInterface::ReplaceExistingService | 2 | Wenn eine andere Anwendung den Dienstnamen bereits registriert hat, versuchen Sie, ihn zu ersetzen. |
Siehe auch ServiceReplacementOptions.
enum QDBusConnectionInterface::ServiceReplacementOptions
Flags zur Bestimmung, ob der D-Bus-Server einer anderen Anwendung erlauben soll, einen Namen zu ersetzen, den diese Anwendung mit der Option ReplaceExistingService registriert hat.
Die möglichen Werte sind:
Konstante | Wert | Beschreibung |
---|---|---|
QDBusConnectionInterface::DontAllowReplacement | 0 | Einer anderen Anwendung nicht erlauben, den Namen zu ersetzen. Der Dienst muss explizit mit unregisterService() deregistriert werden, damit eine andere Anwendung ihn übernehmen kann. Dies ist die Standardeinstellung. |
QDBusConnectionInterface::AllowReplacement | 1 | Erlaube anderen Anwendungen, uns mit der Option ReplaceExistingService zu registerService() zu ersetzen, ohne einzugreifen. Wenn dies geschieht, wird das Signal serviceUnregistered() ausgegeben. |
Siehe auch ServiceQueueOptions.
Dokumentation der Eigenschaft
[read-only]
activatableServiceNames : const QDBusReply<QStringList>
enthält die aktivierbaren Dienstnamen
Listet alle Namen auf, die auf dem Bus aktiviert werden können.
Zugriffsfunktionen:
QDBusReply<QStringList> | activatableServiceNames() const |
[read-only]
registeredServiceNames : const QDBusReply<QStringList>
enthält die registrierten Dienstnamen
Listet alle derzeit auf dem Bus registrierten Namen auf.
Zugriffsfunktionen:
QDBusReply<QStringList> | registeredServiceNames() const |
Dokumentation der Mitgliedsfunktionen
[signal]
void QDBusConnectionInterface::callWithCallbackFailed(const QDBusError &error, const QDBusMessage &call)
Dieses Signal wird ausgegeben, wenn während einer QDBusConnection::callWithCallback() ein Fehler auftritt. error gibt den Fehler an. call ist die Nachricht, die nicht zugestellt werden konnte.
Siehe auch QDBusConnection::callWithCallback().
[slot]
QDBusReply<bool> QDBusConnectionInterface::isServiceRegistered(const QString &serviceName) const
Gibt true
zurück, wenn der Dienstname serviceName aktuell registriert ist.
[slot]
QDBusReply<QDBusConnectionInterface::RegisterServiceReply> QDBusConnectionInterface::registerService(const QString &serviceName, QDBusConnectionInterface::ServiceQueueOptions qoption = DontQueueService, QDBusConnectionInterface::ServiceReplacementOptions roption = DontAllowReplacement)
Fordert an, den Dienstnamen serviceName auf dem Bus zu registrieren. Das Flag qoption gibt an, wie sich der D-Bus-Server verhalten soll, wenn serviceName bereits registriert ist. Das Flag roption gibt an, ob der Server einer anderen Anwendung erlauben soll, unseren registrierten Namen zu ersetzen.
Wenn die Registrierung des Dienstes erfolgreich ist, wird das Signal serviceRegistered() ausgegeben. Wenn wir in die Warteschlange gestellt werden, wird das Signal ausgegeben, wenn wir den Namen erhalten. Wenn roption AllowReplacement ist, wird das Signal serviceUnregistered() ausgegeben, wenn eine andere Anwendung den Namen ersetzt.
Siehe auch unregisterService().
[slot]
QDBusReply<QString> QDBusConnectionInterface::serviceOwner(const QString &name) const
Gibt den eindeutigen Verbindungsnamen des primären Eigentümers des Namens name zurück. Wenn der angeforderte Name keinen Besitzer hat, wird ein org.freedesktop.DBus.Error.NameHasNoOwner
Fehler zurückgegeben.
[slot]
QDBusReply<uint> QDBusConnectionInterface::servicePid(const QString &serviceName) const
Gibt die Unix-Prozess-ID (PID) für den Prozess zurück, der derzeit den Busdienst serviceName hält.
[signal]
void QDBusConnectionInterface::serviceRegistered(const QString &service)
Dieses Signal wird vom D-Bus-Server ausgegeben, wenn der von service angegebene Busdienstname (eindeutiger Verbindungsname oder bekannter Dienstname) von dieser Anwendung erworben wird.
Der Erwerb erfolgt, nachdem diese Anwendung einen Namen mit registerService() angefordert hat.
[slot]
QDBusReply<uint> QDBusConnectionInterface::serviceUid(const QString &serviceName) const
Gibt die Unix-Benutzer-ID (UID) für den Prozess zurück, der derzeit den Busdienst serviceName hält.
[signal]
void QDBusConnectionInterface::serviceUnregistered(const QString &service)
Dieses Signal wird vom D-Bus-Server ausgegeben, wenn diese Anwendung den Besitz des Busdienstnamens verliert, der durch service angegeben wurde.
[slot]
QDBusReply<void> QDBusConnectionInterface::startService(const QString &name)
Fordert den Bus auf, den Dienst mit dem Namen name zu starten.
[slot]
QDBusReply<bool> QDBusConnectionInterface::unregisterService(const QString &serviceName)
Gibt den Anspruch auf den Busdienstnamen serviceName frei, der zuvor bei registerService() registriert war. Wenn diese Anwendung Eigentümer des Namens war, wird er für andere Anwendungen freigegeben, die ihn beanspruchen können. Wenn sie den Namen nur in der Warteschlange hatte, gibt sie ihre Position in der Warteschlange auf.
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.