Sur cette page

QDBusServiceWatcher Class

La classe QDBusServiceWatcher permet à l'utilisateur de surveiller les modifications apportées à un service de bus. En savoir plus...

En-tête : #include <QDBusServiceWatcher>
CMake : find_package(Qt6 REQUIRED COMPONENTS DBus)
target_link_libraries(mytarget PRIVATE Qt6::DBus)
qmake : QT += dbus
Hérite de : QObject

Types publics

flags WatchMode
enum WatchModeFlag { WatchForRegistration, WatchForUnregistration, WatchForOwnerChange }

Propriétés

Fonctions publiques

QDBusServiceWatcher(QObject *parent = nullptr)
QDBusServiceWatcher(const QString &service, const QDBusConnection &connection, QDBusServiceWatcher::WatchMode watchMode = WatchForOwnerChange, QObject *parent = nullptr)
virtual ~QDBusServiceWatcher()
void addWatchedService(const QString &newService)
QBindable<QDBusServiceWatcher::WatchMode> bindableWatchMode()
QBindable<QStringList> bindableWatchedServices()
QDBusConnection connection() const
bool removeWatchedService(const QString &service)
void setConnection(const QDBusConnection &connection)
void setWatchMode(QDBusServiceWatcher::WatchMode mode)
void setWatchedServices(const QStringList &services)
QDBusServiceWatcher::WatchMode watchMode() const
QStringList watchedServices() const

Signaux

void serviceOwnerChanged(const QString &serviceName, const QString &oldOwner, const QString &newOwner)
void serviceRegistered(const QString &serviceName)
void serviceUnregistered(const QString &serviceName)

Description détaillée

Un objet QDBusServiceWatcher permet d'avertir l'application d'un changement de propriétaire d'un nom de service sur le bus. Il dispose de trois modes de surveillance :

  • Surveillance de l'enregistrement du service uniquement.
  • Surveillance de la désinscription du service uniquement.
  • Surveillance de tout type de changement de propriétaire de service (mode par défaut).

Outre leur création ou leur suppression, les services peuvent changer de propriétaire sans qu’une opération de désenregistrement ou d’enregistrement n’ait lieu. Les signaux ` serviceRegistered()` et ` serviceUnregistered()` peuvent donc ne pas être émis dans ce cas.

Cette classe est plus efficace que l’utilisation du signal QDBusConnectionInterface::serviceOwnerChanged(), car elle permet de ne recevoir que les signaux qui intéressent la classe.

Terminer un nom de service par le caractère « * » permettra de faire correspondre tous les noms de service appartenant à l’espace de noms spécifié.

Par exemple, « com.example.backend1* » correspondra à

  • com.example.backend1
  • com.example.backend1.foo
  • com.example.backend1.foo.bar

Les sous-chaînes appartenant au même domaine ne seront pas prises en compte, par exemple « com.example.backend12 ».

Voir également QDBusConnection.

Documentation sur les types de membres

enum QDBusServiceWatcher::WatchModeFlag
flags QDBusServiceWatcher::WatchMode

QDBusServiceWatcher prend en charge trois modes de surveillance différents, configurés par cet indicateur :

ConstantValeurDescription
QDBusServiceWatcher::WatchForRegistration0x01surveille uniquement l'enregistrement du service, en ignorant tout signal lié à un changement de propriétaire du service.
QDBusServiceWatcher::WatchForUnregistration0x02surveille uniquement la désinscription des services, en ignorant tout signal lié à un changement de propriété d’un autre service.
QDBusServiceWatcher::WatchForOwnerChange0x03surveille tout type de changement de propriété de service.

Le type WatchMode est un typedef pour QFlags<WatchModeFlag>. Il stocke une combinaison OR de valeurs WatchModeFlag.

Documentation de la propriété

[bindable] watchMode : WatchMode

Remarque : cette propriété prend en charge les liaisons « QProperty ».

Cette propriété contient le mode de surveillance actuel de cet objet QDBusServiceWatcher.

La valeur par défaut de cette propriété est QDBusServiceWatcher::WatchForOwnershipChange.

Fonctions d'accès :

QDBusServiceWatcher::WatchMode watchMode() const
void setWatchMode(QDBusServiceWatcher::WatchMode mode)

[bindable] watchedServices : QStringList

Remarque : cette propriété prend en charge les liaisons de type « QProperty ».

Cette propriété contient la liste des services surveillés.

Remarque : la modification de cette liste à l'aide de la méthode `setServicesWatched()` est une opération coûteuse en ressources. Dans la mesure du possible, préférez la modifier via les méthodes ` addWatchedService()` et ` removeWatchedService()`.

Fonctions d'accès :

QStringList watchedServices() const
void setWatchedServices(const QStringList &services)

Documentation sur les fonctions membres

[explicit] QDBusServiceWatcher::QDBusServiceWatcher(QObject *parent = nullptr)

Crée un objet QDBusServiceWatcher. Notez que tant que vous n'avez pas établi de connexion à l'aide de la fonction setConnection(), cet objet n'émettra aucun signal.

Le paramètre parent est transmis à la fonction QObject afin de définir le parent de cet objet.

QDBusServiceWatcher::QDBusServiceWatcher(const QString &service, const QDBusConnection &connection, QDBusServiceWatcher::WatchMode watchMode = WatchForOwnerChange, QObject *parent = nullptr)

Crée un objet `QDBusServiceWatcher` et l'associe à la connexion ` connection `. De plus, cette fonction commence immédiatement à surveiller les modifications apportées à la variable ` watchMode ` du service ` service`.

Le paramètre parent est transmis à QObject afin de définir le parent de cet objet.

[virtual noexcept] QDBusServiceWatcher::~QDBusServiceWatcher()

Détruit l'objet ` QDBusServiceWatcher ` et libère toutes les ressources qui lui sont associées.

void QDBusServiceWatcher::addWatchedService(const QString &newService)

Ajoute newService à la liste des services à surveiller par cet objet. Cette fonction est plus efficace que setWatchedServices() et doit être utilisée dans la mesure du possible pour ajouter des services.

Supprime toute liaison existante avec watchedServices.

QDBusConnection QDBusServiceWatcher::connection() const

Renvoie l'QDBusConnection e auquel cet objet est associé.

Voir aussi setConnection().

bool QDBusServiceWatcher::removeWatchedService(const QString &service)

Supprime l'service de la liste des services surveillés par cet objet. Notez que les notifications D-Bus sont asynchrones ; il se peut donc qu'il reste des signaux en attente d'envoi concernant service. Ces signaux seront tout de même émis dès que les messages D-Bus seront traités.

Supprime toute liaison existante avec watchedServices.

Cette fonction renvoie true si des services ont été supprimés.

[signal] void QDBusServiceWatcher::serviceOwnerChanged(const QString &serviceName, const QString &oldOwner, const QString &newOwner)

Ce signal est émis chaque fois que cet objet détecte un changement de propriétaire du service « serviceName ». Le paramètre « oldOwner » contient le nom de l’ancien propriétaire et « newOwner » celui du nouveau propriétaire. « oldOwner » et « newOwner » sont tous deux des noms de connexion uniques.

Notez que ce signal est également émis chaque fois que le service serviceName a été enregistré ou désenregistré. S’il a été enregistré, oldOwner contiendra une chaîne vide, tandis que s’il a été désenregistré, newOwner contiendra une chaîne vide.

Si vous souhaitez uniquement savoir si le service est enregistré ou désenregistré, sans être informé du changement de propriété, envisagez d’utiliser les modes spécifiques à ces opérations. Cette classe est plus efficace si vous utilisez les modes plus spécifiques.

Voir également serviceRegistered() et serviceUnregistered().

[signal] void QDBusServiceWatcher::serviceRegistered(const QString &serviceName)

Ce signal est émis dès que cet objet détecte que le service serviceName est disponible sur le bus.

Voir également serviceUnregistered() et serviceOwnerChanged().

[signal] void QDBusServiceWatcher::serviceUnregistered(const QString &serviceName)

Ce signal est émis dès que cet objet détecte que le service serviceName a été désenregistré du bus et n'est plus disponible.

Voir également serviceRegistered() et serviceOwnerChanged().

void QDBusServiceWatcher::setConnection(const QDBusConnection &connection)

Définit la connexion D-Bus à laquelle cet objet est associé sur connection. Tous les services surveillés seront transférés vers cette connexion.

Notez que les objets ` QDBusConnection ` sont comptés par référence : ` QDBusServiceWatcher ` conservera une référence à cette connexion tant qu’elle existera. La connexion n’est pas fermée tant que le compteur de références n’est pas tombé à zéro, ce qui garantit que toutes les notifications seront reçues tant que cet objet ` QDBusServiceWatcher ` existera.

Voir également connection().

void QDBusServiceWatcher::setWatchedServices(const QStringList &services)

Définit la liste des services D-Bus surveillés sur services.

Notez que définir la liste dans son intégralité revient à supprimer toutes les règles de surveillance des services existantes et à en ajouter de nouvelles. Il s'agit d'une opération coûteuse en ressources qui doit être évitée dans la mesure du possible. Utilisez plutôt addWatchedService() et removeWatchedService() si vous le pouvez pour modifier les entrées de la liste.

Supprime toute liaison existante de ` watchedServices`.

Remarque : fonctionde définition de la propriété watchedServices.

Voir également watchedServices().

QStringList QDBusServiceWatcher::watchedServices() const

Renvoie la liste des services D-Bus surveillés.

Remarque : fonctionde lecture de la propriété watchedServices.

Voir aussi setWatchedServices().

© 2026 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.