Sur cette page

QDBusServiceWatcher Class

La classe QDBusServiceWatcher permet à l'utilisateur de surveiller un changement de service de bus. Plus d'informations...

En-tête : #include <QDBusServiceWatcher>
CMake : find_package(Qt6 REQUIRED COMPONENTS DBus)
target_link_libraries(mytarget PRIVATE Qt6::DBus)
qmake : QT += dbus
Héritages : 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 peut être utilisé pour notifier l'application d'un changement de propriété d'un nom de service sur le bus. Il dispose de trois modes de surveillance :

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

En plus d'être créés ou supprimés, les services peuvent changer de propriétaire sans qu'une opération de désenregistrement/enregistrement ne se produise. Les signaux serviceRegistered() et serviceUnregistered() peuvent donc ne pas être émis si cela se produit.

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 "*" correspondra à tous les noms de service de 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 du 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, qui sont configurés par ce drapeau :

ConstanteValeurDescription
QDBusServiceWatcher::WatchForRegistration0x01surveillance de l'enregistrement d'un service uniquement, ignorant tout signal lié à un changement de propriété d'un autre service.
QDBusServiceWatcher::WatchForUnregistration0x02surveillance du désenregistrement du service uniquement, en ignorant tout signal lié à un autre changement de propriété du service.
QDBusServiceWatcher::WatchForOwnerChange0x03surveillance de tout type de changement de propriété d'un service.

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

Documentation sur les propriétés

[bindable] watchMode : WatchMode

Remarque : Cette propriété prend en charge les liaisons QProperty.

Cette propriété indique le mode de surveillance actuel de l'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 QProperty.

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

Note : Modifier cette liste avec setServicesWatched() est une opération coûteuse. Si vous le pouvez, préférez la modifier au moyen de addWatchedService() et removeWatchedService().

Fonctions d'accès :

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

Documentation des fonctions membres

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

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

Le paramètre parent est transmis à QObject pour 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'attache à la connexion connection. De plus, cette fonction commence immédiatement à surveiller les modifications apportées par watchMode au service service.

Le paramètre parent est transmis à QObject pour 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 devrait être utilisée chaque fois que possible pour ajouter des services.

Supprime toute liaison existante de watchedServices.

QDBusConnection QDBusServiceWatcher::connection() const

Renvoie l'adresse QDBusConnection à laquelle cet objet est attaché.

Voir aussi setConnection().

bool QDBusServiceWatcher::removeWatchedService(const QString &service)

Supprime le site service de la liste des services surveillés par cet objet. Notez que les notifications D-Bus sont asynchrones et qu'il peut donc y avoir des signaux en attente de livraison à propos de service. Ces signaux seront toujours émis lorsque 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 l'ancien nom du propriétaire et newOwner est le nouveau propriétaire. oldOwner et newOwner sont des noms de connexion uniques.

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

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

Voir aussi serviceRegistered() et serviceUnregistered().

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

Ce signal est émis chaque fois que cet objet détecte que le service serviceName est devenu disponible sur le bus.

Voir également serviceUnregistered() et serviceOwnerChanged().

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

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

Voir aussi serviceRegistered() et serviceOwnerChanged().

void QDBusServiceWatcher::setConnection(const QDBusConnection &connection)

Définit la connexion D-Bus à laquelle cet objet est attaché comme étant 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 pour cette connexion tant qu'elle existera. La connexion n'est pas fermée tant que le nombre de références n'est pas tombé à zéro, ce qui garantit que toutes les notifications sont reçues tant que l'objet QDBusServiceWatcher existe.

Voir aussi connection().

void QDBusServiceWatcher::setWatchedServices(const QStringList &services)

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

Notez que la définition de la liste entière implique la suppression de toutes les règles précédentes de surveillance des services et l'ajout de nouvelles règles. Cette opération est coûteuse et doit être évitée dans la mesure du possible. Utilisez plutôt addWatchedService() et removeWatchedService() si vous le pouvez pour manipuler les entrées de la liste.

Supprime toute liaison existante de watchedServices.

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

Voir également watchedServices().

QStringList QDBusServiceWatcher::watchedServices() const

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

Note : Fonction Getter pour 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.