Utilisation des adaptateurs Qt D-Bus
Les adaptateurs sont des classes spéciales qui sont attachées à n'importe quelle classe dérivée de QObject et qui fournissent l'interface avec le monde extérieur à l'aide de D-Bus. Les adaptateurs sont des classes légères dont l'objectif principal est de relayer les appels vers et depuis l'objet réel, éventuellement en validant ou en convertissant les données provenant du monde extérieur et, par conséquent, en protégeant l'objet réel.
Contrairement à l'héritage multiple, les adaptateurs peuvent être ajoutés à tout moment à n'importe quel objet (mais pas supprimés), ce qui permet une plus grande flexibilité lors de l'exportation de classes existantes. Un autre avantage des adaptateurs est de fournir des fonctionnalités similaires mais non identiques dans des méthodes portant le même nom dans différentes interfaces, un cas qui peut être assez courant lorsqu'on ajoute une nouvelle version d'une interface standard à un objet.
Pour utiliser un adaptateur, il faut créer une classe qui hérite de QDBusAbstractAdaptor. Comme il s'agit d'une classe standard dérivée de QObject, la macro Q_OBJECT doit apparaître dans la déclaration et le fichier source doit être traité avec l'outil moc. La classe doit également contenir une entrée Q_CLASSINFO avec le nom "D-Bus Interface", déclarant l'interface qu'elle exporte. Une seule entrée par classe est prise en charge.
Tout slot public de la classe sera accessible par le bus via des messages de type MethodCall. (Pour plus d'informations, voir Declaring Slots in D-Bus Adaptors ). Les signaux de la classe seront automatiquement relayés par D-Bus. Cependant, tous les types ne sont pas autorisés à utiliser des signaux ou des listes de paramètres de slots : voir The Qt D-Bus Type System pour plus d'informations.
De même, toute propriété déclarée avec Q_PROPERTY sera automatiquement exposée via l'interface Properties sur D-Bus. Comme le système de propriétés de QObject n'autorise pas les propriétés non lisibles, il n'est pas possible de déclarer des propriétés en écriture seule à l'aide d'adaptateurs.
Plus d'informations :
- Déclarer des slots dans les adaptateurs D-Bus
- Déclaration de signaux dans les adaptateurs D-Bus
- Le système de type Qt D-Bus
- Dans l'exemple D-Bus Complex Ping Pong,
complexpong.hetcomplexpong.cppmontrent une implémentation de QDBusAbstractAdaptor.
Voir également QDBusAbstractAdaptor.
© 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.