Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
QDBusServiceWatcher Class Reference

The QDBusServiceWatcher class allows the user to watch for a bus service change. More...

#include <qdbusservicewatcher.h>

+ Inheritance diagram for QDBusServiceWatcher:
+ Collaboration diagram for QDBusServiceWatcher:

Public Types

enum  WatchModeFlag { WatchForRegistration = 0x01 , WatchForUnregistration = 0x02 , WatchForOwnerChange = 0x03 }
 QDBusServiceWatcher supports three different watch modes, which are configured by this flag: More...
 

Signals

void serviceRegistered (const QString &service)
 This signal is emitted whenever this object detects that the service serviceName became available on the bus.
 
void serviceUnregistered (const QString &service)
 This signal is emitted whenever this object detects that the service serviceName was unregistered from the bus and is no longer available.
 
void serviceOwnerChanged (const QString &service, const QString &oldOwner, const QString &newOwner)
 This signal is emitted whenever this object detects that there was a service ownership change relating to the serviceName service.
 
- Signals inherited from QObject
void destroyed (QObject *=nullptr)
 This signal is emitted immediately before the object obj is destroyed, after any instances of QPointer have been notified, and cannot be blocked.
 
void objectNameChanged (const QString &objectName, QPrivateSignal)
 This signal is emitted after the object's name has been changed.
 

Public Member Functions

 QDBusServiceWatcher (QObject *parent=nullptr)
 Creates a QDBusServiceWatcher object.
 
 QDBusServiceWatcher (const QString &service, const QDBusConnection &connection, WatchMode watchMode=WatchForOwnerChange, QObject *parent=nullptr)
 Creates a QDBusServiceWatcher object and attaches it to the connection connection.
 
 ~QDBusServiceWatcher ()
 Destroys the QDBusServiceWatcher object and releases any resources associated with it.
 
QStringList watchedServices () const
 Returns the list of D-Bus services that are being watched.
 
void setWatchedServices (const QStringList &services)
 Sets the list of D-Bus services being watched to be services.
 
void addWatchedService (const QString &newService)
 Adds newService to the list of services to be watched by this object.
 
bool removeWatchedService (const QString &service)
 Removes the service from the list of services being watched by this object.
 
QBindable< QStringListbindableWatchedServices ()
 
WatchMode watchMode () const
 
void setWatchMode (WatchMode mode)
 
QBindable< WatchMode > bindableWatchMode ()
 
QDBusConnection connection () const
 Returns the QDBusConnection that this object is attached to.
 
void setConnection (const QDBusConnection &connection)
 Sets the D-Bus connection that this object is attached to be connection.
 
- Public Member Functions inherited from QObject
Q_INVOKABLE QObject (QObject *parent=nullptr)
 Constructs an object with parent object parent.
 
virtual ~QObject ()
 Destroys the object, deleting all its child objects.
 
virtual bool event (QEvent *event)
 This virtual function receives events to an object and should return true if the event e was recognized and processed.
 
virtual bool eventFilter (QObject *watched, QEvent *event)
 Filters events if this object has been installed as an event filter for the watched object.
 
QString objectName () const
 
Q_WEAK_OVERLOAD void setObjectName (const QString &name)
 Sets the object's name to name.
 
void setObjectName (QAnyStringView name)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
QBindable< QStringbindableObjectName ()
 
bool isWidgetType () const
 Returns true if the object is a widget; otherwise returns false.
 
bool isWindowType () const
 Returns true if the object is a window; otherwise returns false.
 
bool isQuickItemType () const
 Returns true if the object is a QQuickItem; otherwise returns false.
 
bool signalsBlocked () const noexcept
 Returns true if signals are blocked; otherwise returns false.
 
bool blockSignals (bool b) noexcept
 If block is true, signals emitted by this object are blocked (i.e., emitting a signal will not invoke anything connected to it).
 
QThreadthread () const
 Returns the thread in which the object lives.
 
bool moveToThread (QThread *thread QT6_DECL_NEW_OVERLOAD_TAIL)
 Changes the thread affinity for this object and its children and returns true on success.
 
int startTimer (int interval, Qt::TimerType timerType=Qt::CoarseTimer)
 This is an overloaded function that will start a timer of type timerType and a timeout of interval milliseconds.
 
int startTimer (std::chrono::nanoseconds time, Qt::TimerType timerType=Qt::CoarseTimer)
 
void killTimer (int id)
 Kills the timer with timer identifier, id.
 
void killTimer (Qt::TimerId id)
 
template<typename T >
findChild (QAnyStringView aName, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 Returns the child of this object that can be cast into type T and that is called name, or \nullptr if there is no such object.
 
template<typename T >
QList< T > findChildren (QAnyStringView aName, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 Returns all children of this object with the given name that can be cast to type T, or an empty list if there are no such objects.
 
template<typename T >
findChild (Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
template<typename T >
QList< T > findChildren (Qt::FindChildOptions options=Qt::FindChildrenRecursively) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
const QObjectListchildren () const
 Returns a list of child objects.
 
void setParent (QObject *parent)
 Makes the object a child of parent.
 
void installEventFilter (QObject *filterObj)
 Installs an event filter filterObj on this object.
 
void removeEventFilter (QObject *obj)
 Removes an event filter object obj from this object.
 
QMetaObject::Connection connect (const QObject *sender, const char *signal, const char *member, Qt::ConnectionType type=Qt::AutoConnection) const
 
bool disconnect (const char *signal=nullptr, const QObject *receiver=nullptr, const char *member=nullptr) const
 
bool disconnect (const QObject *receiver, const char *member=nullptr) const
 
void dumpObjectTree () const
 Dumps a tree of children to the debug output.
 
void dumpObjectInfo () const
 Dumps information about signal connections, etc.
 
bool setProperty (const char *name, const QVariant &value)
 Sets the value of the object's name property to value.
 
bool setProperty (const char *name, QVariant &&value)
 
QVariant property (const char *name) const
 Returns the value of the object's name property.
 
QList< QByteArraydynamicPropertyNames () const
 
QBindingStoragebindingStorage ()
 
const QBindingStoragebindingStorage () const
 
QObjectparent () const
 Returns a pointer to the parent object.
 
bool inherits (const char *classname) const
 Returns true if this object is an instance of a class that inherits className or a QObject subclass that inherits className; otherwise returns false.
 

Properties

QStringList watchedServices
 the list of services watched.
 
WatchMode watchMode
 the current watch mode for this QDBusServiceWatcher object.
 
- Properties inherited from QObject
QString objectName
 the name of this object
 

Additional Inherited Members

- Public Slots inherited from QObject
void deleteLater ()
 \threadsafe
 
- Static Public Member Functions inherited from QObject
static QMetaObject::Connection connect (const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
 \threadsafe
 
static QMetaObject::Connection connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type=Qt::AutoConnection)
 
template<typename Func1 , typename Func2 >
static QMetaObject::Connection connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::ContextTypeForFunctor< Func2 >::ContextType *context, Func2 &&slot, Qt::ConnectionType type=Qt::AutoConnection)
 
template<typename Func1 , typename Func2 >
static QMetaObject::Connection connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, Func2 &&slot)
 
static bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *member)
 \threadsafe
 
static bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &member)
 
static bool disconnect (const QMetaObject::Connection &)
 Disconnect a connection.
 
template<typename Func1 , typename Func2 >
static bool disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::FunctionPointer< Func2 >::Object *receiver, Func2 slot)
 
template<typename Func1 >
static bool disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const QObject *receiver, void **zero)
 
- Protected Member Functions inherited from QObject
QObjectsender () const
 Returns a pointer to the object that sent the signal, if called in a slot activated by a signal; otherwise it returns \nullptr.
 
int senderSignalIndex () const
 
int receivers (const char *signal) const
 Returns the number of receivers connected to the signal.
 
bool isSignalConnected (const QMetaMethod &signal) const
 
virtual void timerEvent (QTimerEvent *event)
 This event handler can be reimplemented in a subclass to receive timer events for the object.
 
virtual void childEvent (QChildEvent *event)
 This event handler can be reimplemented in a subclass to receive child events.
 
virtual void customEvent (QEvent *event)
 This event handler can be reimplemented in a subclass to receive custom events.
 
virtual void connectNotify (const QMetaMethod &signal)
 
virtual void disconnectNotify (const QMetaMethod &signal)
 
 QObject (QObjectPrivate &dd, QObject *parent=nullptr)
 
- Protected Attributes inherited from QObject
QScopedPointer< QObjectDatad_ptr
 

Detailed Description

The QDBusServiceWatcher class allows the user to watch for a bus service change.

Since
4.6 \inmodule QtDBus

A QDBusServiceWatcher object can be used to notify the application about an ownership change of a service name on the bus. It has three watch modes:

\list

  • Watching for service registration only.
  • Watching for service unregistration only.
  • Watching for any kind of service ownership change (the default mode). \endlist

Besides being created or deleted, services may change owners without a unregister/register operation happening. So the serviceRegistered() and serviceUnregistered() signals may not be emitted if that happens.

This class is more efficient than using the QDBusConnectionInterface::serviceOwnerChanged() signal because it allows one to receive only the signals for which the class is interested in.

Ending a service name with the character '*' will match all service names within the specified namespace.

For example "com.example.backend1*" will match \list

  • com.example.backend1
  • com.example.backend1.foo
  • com.example.backend1.foo.bar \endlist Substrings in the same domain will not be matched, i.e "com.example.backend12".
See also
QDBusConnection

Definition at line 22 of file qdbusservicewatcher.h.

Member Enumeration Documentation

◆ WatchModeFlag

QDBusServiceWatcher supports three different watch modes, which are configured by this flag:

\value WatchForRegistration watch for service registration only, ignoring any signals related to other service ownership change.

\value WatchForUnregistration watch for service unregistration only, ignoring any signals related to other service ownership change.

\value WatchForOwnerChange watch for any kind of service ownership change.

Enumerator
WatchForRegistration 
WatchForUnregistration 
WatchForOwnerChange 

Definition at line 29 of file qdbusservicewatcher.h.

Constructor & Destructor Documentation

◆ QDBusServiceWatcher() [1/2]

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

Creates a QDBusServiceWatcher object.

Note that until you set a connection with setConnection(), this object will not emit any signals.

The parent parameter is passed to QObject to set the parent of this object.

Definition at line 217 of file qdbusservicewatcher.cpp.

◆ QDBusServiceWatcher() [2/2]

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

Creates a QDBusServiceWatcher object and attaches it to the connection connection.

Also, this function immediately starts watching for watchMode changes to service service.

The parent parameter is passed to QObject to set the parent of this object.

Definition at line 230 of file qdbusservicewatcher.cpp.

References connection(), and watchMode.

+ Here is the call graph for this function:

◆ ~QDBusServiceWatcher()

QDBusServiceWatcher::~QDBusServiceWatcher ( )

Destroys the QDBusServiceWatcher object and releases any resources associated with it.

Definition at line 240 of file qdbusservicewatcher.cpp.

Member Function Documentation

◆ addWatchedService()

void QDBusServiceWatcher::addWatchedService ( const QString & newService)

Adds newService to the list of services to be watched by this object.

This function is more efficient than setWatchedServices() and should be used whenever possible to add services.

Removes any existing binding of watchedServices.

Definition at line 288 of file qdbusservicewatcher.cpp.

References d, and services.

Referenced by QIBusPlatformInputContextPrivate::createBusProxy().

+ Here is the caller graph for this function:

◆ bindableWatchedServices()

QBindable< QStringList > QDBusServiceWatcher::bindableWatchedServices ( )

Definition at line 275 of file qdbusservicewatcher.cpp.

References d.

◆ bindableWatchMode()

QBindable< QDBusServiceWatcher::WatchMode > QDBusServiceWatcher::bindableWatchMode ( )

Definition at line 335 of file qdbusservicewatcher.cpp.

◆ connection()

QDBusConnection QDBusServiceWatcher::connection ( ) const

Returns the QDBusConnection that this object is attached to.

See also
setConnection()

Definition at line 356 of file qdbusservicewatcher.cpp.

Referenced by QDBusServiceWatcher(), and setConnection().

+ Here is the caller graph for this function:

◆ removeWatchedService()

bool QDBusServiceWatcher::removeWatchedService ( const QString & service)

Removes the service from the list of services being watched by this object.

Note that D-Bus notifications are asynchronous, so there may still be signals pending delivery about service. Those signals will still be emitted whenever the D-Bus messages are processed.

Removes any existing binding of watchedServices.

This function returns true if any services were removed.

Definition at line 314 of file qdbusservicewatcher.cpp.

References d.

Referenced by QIBusPlatformInputContextPrivate::createBusProxy().

+ Here is the caller graph for this function:

◆ serviceOwnerChanged

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

This signal is emitted whenever this object detects that there was a service ownership change relating to the serviceName service.

The oldOwner parameter contains the old owner name and newOwner is the new owner. Both oldOwner and newOwner are unique connection names.

Note that this signal is also emitted whenever the serviceName service was registered or unregistered. If it was registered, oldOwner will contain an empty string, whereas if it was unregistered, newOwner will contain an empty string.

If you need only to find out if the service is registered or unregistered only, without being notified that the ownership changed, consider using the specific modes for those operations. This class is more efficient if you use the more specific modes.

See also
serviceRegistered(), serviceUnregistered()

◆ serviceRegistered

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

This signal is emitted whenever this object detects that the service serviceName became available on the bus.

See also
serviceUnregistered(), serviceOwnerChanged()

Referenced by QDBusTrayIcon::init().

+ Here is the caller graph for this function:

◆ serviceUnregistered

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

This signal is emitted whenever this object detects that the service serviceName was unregistered from the bus and is no longer available.

See also
serviceRegistered(), serviceOwnerChanged()

◆ setConnection()

void QDBusServiceWatcher::setConnection ( const QDBusConnection & connection)

Sets the D-Bus connection that this object is attached to be connection.

All services watched will be transferred to this connection.

Note that QDBusConnection objects are reference counted: QDBusServiceWatcher will keep a reference for this connection while it exists. The connection is not closed until the reference count drops to zero, so this will ensure that any notifications are received while this QDBusServiceWatcher object exists.

See also
connection()

Definition at line 373 of file qdbusservicewatcher.cpp.

References connection(), d, and QDBusConnection::name().

Referenced by QIBusPlatformInputContextPrivate::~QIBusPlatformInputContextPrivate(), QIBusPlatformInputContextPrivate::createBusProxy(), and QIBusPlatformInputContext::socketChanged().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setWatchedServices()

void QDBusServiceWatcher::setWatchedServices ( const QStringList & services)

Sets the list of D-Bus services being watched to be services.

Note that setting the entire list means removing all previous rules for watching services and adding new ones. This is an expensive operation and should be avoided, if possible. Instead, use addWatchedService() and removeWatchedService() if you can to manipulate entries in the list.

Removes any existing binding of watchedServices.

Definition at line 264 of file qdbusservicewatcher.cpp.

References d, and services.

◆ setWatchMode()

void QDBusServiceWatcher::setWatchMode ( WatchMode mode)

Definition at line 340 of file qdbusservicewatcher.cpp.

References d.

◆ watchedServices()

QStringList QDBusServiceWatcher::watchedServices ( ) const

Returns the list of D-Bus services that are being watched.

See also
setWatchedServices()

Definition at line 249 of file qdbusservicewatcher.cpp.

◆ watchMode()

QDBusServiceWatcher::WatchMode QDBusServiceWatcher::watchMode ( ) const

Definition at line 330 of file qdbusservicewatcher.cpp.

Property Documentation

◆ watchedServices

QDBusServiceWatcher::watchedServices
readwrite

the list of services watched.

Note
Modifying this list with setServicesWatched() is an expensive operation. If you can, prefer to change it by way of addWatchedService() and removeWatchedService().

Definition at line 25 of file qdbusservicewatcher.h.

◆ watchMode

QDBusServiceWatcher::watchMode
readwrite

the current watch mode for this QDBusServiceWatcher object.

The default value for this property is QDBusServiceWatcher::WatchForOwnershipChange.

Definition at line 27 of file qdbusservicewatcher.h.

Referenced by QDBusServiceWatcher().


The documentation for this class was generated from the following files: