QDBusServiceWatcher Class
La clase QDBusServiceWatcher permite al usuario vigilar un cambio de servicio de autobús. Más...
| Cabecera: | #include <QDBusServiceWatcher> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS DBus)target_link_libraries(mytarget PRIVATE Qt6::DBus) |
| qmake: | QT += dbus |
| Hereda: | QObject |
Tipos públicos
| flags | WatchMode |
| enum | WatchModeFlag { WatchForRegistration, WatchForUnregistration, WatchForOwnerChange } |
Propiedades
- watchMode : WatchMode
- watchedServices : QStringList
Funciones públicas
| 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 |
Señales
| void | serviceOwnerChanged(const QString &serviceName, const QString &oldOwner, const QString &newOwner) |
| void | serviceRegistered(const QString &serviceName) |
| void | serviceUnregistered(const QString &serviceName) |
Descripción Detallada
Un objeto QDBusServiceWatcher puede ser utilizado para notificar a la aplicación sobre un cambio de propiedad de un nombre de servicio en el bus. Tiene tres modos de vigilancia:
- Vigilancia sólo para el registro de servicios.
- Atento sólo a la baja de un servicio.
- Vigilancia de cualquier tipo de cambio en la propiedad de un servicio (modo por defecto).
Además de ser creados o eliminados, los servicios pueden cambiar de propietario sin que se produzca una operación de desregistro/registro. Así que las señales serviceRegistered() y serviceUnregistered() pueden no ser emitidas si eso ocurre.
Esta clase es más eficiente que usar la señal QDBusConnectionInterface::serviceOwnerChanged() porque permite recibir sólo las señales en las que la clase está interesada.
Terminar un nombre de servicio con el carácter '*' coincidirá con todos los nombres de servicio dentro del espacio de nombres especificado.
Por ejemplo, "com.example.backend1*" coincidirá con
- com.ejemplo.backend1
- com.example.backend1.foo
- com.example.backend1.foo.bar
Las subcadenas del mismo dominio no se compararán, es decir, "com.example.backend12".
Véase también QDBusConnection.
Documentación de tipos de miembros
enum QDBusServiceWatcher::WatchModeFlag
flags QDBusServiceWatcher::WatchMode
QDBusServiceWatcher soporta tres modos de vigilancia diferentes, que se configuran mediante esta bandera:
| Constante | Valor | Descripción |
|---|---|---|
QDBusServiceWatcher::WatchForRegistration | 0x01 | vigilar sólo el registro de servicios, ignorando cualquier señal relacionada con cambios en la propiedad de otros servicios. |
QDBusServiceWatcher::WatchForUnregistration | 0x02 | vigilar sólo la baja de un servicio, ignorando cualquier señal relacionada con el cambio de titularidad de otro servicio. |
QDBusServiceWatcher::WatchForOwnerChange | 0x03 | vigilar cualquier tipo de cambio en la propiedad del servicio. |
El tipo WatchMode es un typedef para QFlags<WatchModeFlag>. Almacena una combinación OR de valores WatchModeFlag.
Documentación de Propiedades
[bindable] watchMode : WatchMode
Nota: Esta propiedad soporta enlaces QProperty.
Esta propiedad contiene el modo de vigilancia actual para este objeto QDBusServiceWatcher.
El valor por defecto de esta propiedad es QDBusServiceWatcher::WatchForOwnershipChange.
Funciones de acceso:
| QDBusServiceWatcher::WatchMode | watchMode() const |
| void | setWatchMode(QDBusServiceWatcher::WatchMode mode) |
[bindable] watchedServices : QStringList
Nota: Esta propiedad admite enlaces QProperty.
Esta propiedad contiene la lista de servicios vigilados.
Nota: Modificar esta lista con setServicesWatched() es una operación costosa. Si puede, prefiera modificarla mediante addWatchedService() y removeWatchedService().
Funciones de acceso:
| QStringList | watchedServices() const |
| void | setWatchedServices(const QStringList &services) |
Documentación de funciones miembro
[explicit] QDBusServiceWatcher::QDBusServiceWatcher(QObject *parent = nullptr)
Crea un objeto QDBusServiceWatcher. Ten en cuenta que hasta que no establezcas una conexión con setConnection(), este objeto no emitirá ninguna señal.
El parámetro parent se pasa a QObject para establecer el padre de este objeto.
QDBusServiceWatcher::QDBusServiceWatcher(const QString &service, const QDBusConnection &connection, QDBusServiceWatcher::WatchMode watchMode = WatchForOwnerChange, QObject *parent = nullptr)
Crea un objeto QDBusServiceWatcher y lo adjunta a la conexión connection. Además, esta función comienza inmediatamente a vigilar los cambios de watchMode en el servicio service.
El parámetro parent se pasa a QObject para establecer el padre de este objeto.
[virtual noexcept] QDBusServiceWatcher::~QDBusServiceWatcher()
Destruye el objeto QDBusServiceWatcher y libera los recursos asociados a él.
void QDBusServiceWatcher::addWatchedService(const QString &newService)
Añade newService a la lista de servicios a vigilar por este objeto. Esta función es más eficiente que setWatchedServices() y debería utilizarse siempre que sea posible para añadir servicios.
Elimina cualquier vinculación existente de watchedServices.
QDBusConnection QDBusServiceWatcher::connection() const
Devuelve el QDBusConnection al que está unido este objeto.
Véase también setConnection().
bool QDBusServiceWatcher::removeWatchedService(const QString &service)
Elimina el service de la lista de servicios vigilados por este objeto. Ten en cuenta que las notificaciones D-Bus son asíncronas, por lo que aún puede haber señales pendientes de entrega sobre service. Estas señales seguirán emitiéndose cuando se procesen los mensajes D-Bus.
Elimina cualquier vinculación existente de watchedServices.
Esta función devuelve true si se ha eliminado algún servicio.
[signal] void QDBusServiceWatcher::serviceOwnerChanged(const QString &serviceName, const QString &oldOwner, const QString &newOwner)
Esta señal se emite siempre que este objeto detecta que se ha producido un cambio de propietario en relación con el servicio serviceName. El parámetro oldOwner contiene el nombre del antiguo propietario y newOwner es el nuevo propietario. Tanto oldOwner como newOwner son nombres de conexión únicos.
Ten en cuenta que esta señal también se emite cuando el servicio serviceName ha sido registrado o desregistrado. Si se registró, oldOwner contendrá una cadena vacía, mientras que si no se registró, newOwner contendrá una cadena vacía.
Si sólo necesitas saber si el servicio está registrado o no, sin que se te notifique que la propiedad ha cambiado, considera usar los modos específicos para esas operaciones. Esta clase es más eficiente si utilizas los modos más específicos.
Véase también serviceRegistered() y serviceUnregistered().
[signal] void QDBusServiceWatcher::serviceRegistered(const QString &serviceName)
Esta señal se emite siempre que este objeto detecta que el servicio serviceName está disponible en el bus.
Véase también serviceUnregistered() y serviceOwnerChanged().
[signal] void QDBusServiceWatcher::serviceUnregistered(const QString &serviceName)
Esta señal se emite siempre que este objeto detecta que el servicio serviceName se ha dado de baja del bus y ya no está disponible.
Véase también serviceRegistered() y serviceOwnerChanged().
void QDBusServiceWatcher::setConnection(const QDBusConnection &connection)
Establece la conexión D-Bus a la que está vinculado este objeto en connection. Todos los servicios observados serán transferidos a esta conexión.
Ten en cuenta que los objetos QDBusConnection se cuentan por referencia: QDBusServiceWatcher mantendrá una referencia para esta conexión mientras exista. La conexión no se cierra hasta que el recuento de referencias cae a cero, por lo que esto asegurará que cualquier notificación se reciba mientras este objeto QDBusServiceWatcher exista.
Véase también connection().
void QDBusServiceWatcher::setWatchedServices(const QStringList &services)
Establece la lista de servicios D-Bus vigilados en services.
Tenga en cuenta que establecer la lista completa significa eliminar todas las reglas anteriores para vigilar servicios y añadir otras nuevas. Esta es una operación costosa y debería evitarse, si es posible. En su lugar, utilice addWatchedService() y removeWatchedService() si puede para manipular las entradas de la lista.
Elimina cualquier vinculación existente de watchedServices.
Nota: Función Setter para la propiedad watchedServices.
Véase también watchedServices().
QStringList QDBusServiceWatcher::watchedServices() const
Devuelve la lista de servicios D-Bus que están siendo vigilados.
Nota: Función Getter para la propiedad watchedServices.
Véase también 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.