QDBusVirtualObject Class
The QDBusVirtualObject class is used to handle several D-Bus paths with one class. More…
| Header | #include <QDBusVirtualObject> |
|---|---|
| CMake | target_link_libraries(app PRIVATE Nt::DBus) |
| Module | Nt D-Bus C++ Classes |
| Inherits | QObject |
List of all members, including inherited members
Public Functions
| QDBusVirtualObject(QObject *parent = nullptr) | |
| ~QDBusVirtualObject() | |
| virtual QString | introspect(const QString &path) const |
| virtual bool | handleMessage(const QDBusMessage &message, const QDBusConnection &connection) |
Detailed Description
Subclass it and implement introspect() and handleMessage(), then register it with QDBusConnection::registerVirtualObject(). With QDBusConnection::SubPath it receives the calls to every path below its own as well, which suits a tree of objects that exist only as data:
class Files : public QDBusVirtualObject {
public:
QString introspect(const QString &) const override { return QString(); }
bool handleMessage(const QDBusMessage &m, const QDBusConnection &c) override {
if (m.member() != "Size")
return false;
c.send(m.createReply(QFileInfo(m.path().mid(6)).size()));
return true;
}
};
See also QDBusConnection::registerVirtualObject().
Differences from Qt
None.
Member Function Documentation
QDBusVirtualObject::QDBusVirtualObject(QObject *parent = nullptr)
Constructs a virtual object with the given parent.
QDBusVirtualObject::~QDBusVirtualObject()
Destroys the virtual object. It is unregistered.
bool QDBusVirtualObject::handleMessage(const QDBusMessage &message, const QDBusConnection &connection)
Handles the method call message, which arrived on connection. Returns true if the call was handled, and the function is then responsible for any reply; otherwise returns false and the caller gets an error.
QString QDBusVirtualObject::introspect(const QString &path) const
Returns the introspection XML for path: the interface elements only, without the enclosing node element. It may be empty.