Sur cette page

QDBusArgument Class

La classe QDBusArgument est utilisée pour rassembler et désassembler les arguments D-Bus. Plus d'informations...

En-tête : #include <QDBusArgument>
CMake : find_package(Qt6 REQUIRED COMPONENTS DBus)
target_link_libraries(mytarget PRIVATE Qt6::DBus)
qmake : QT += dbus

Types publics

enum ElementType { BasicType, VariantType, ArrayType, StructureType, MapType, …, UnknownType }

Fonctions publiques

QDBusArgument()
QDBusArgument(const QDBusArgument &other)
~QDBusArgument()
QVariant asVariant() const
bool atEnd() const
void beginArray() const
void beginArray(QMetaType id)
void beginMap() const
void beginMap(QMetaType keyMetaType, QMetaType valueMetaType)
void beginMapEntry()
void beginMapEntry() const
void beginStructure()
void beginStructure() const
QDBusArgument::ElementType currentType() const
void endArray()
void endArray() const
void endMap()
void endMap() const
void endMapEntry()
void endMapEntry() const
void endStructure()
void endStructure() const
void swap(QDBusArgument &other)
QDBusArgument &operator<<(uchar arg)
QDBusArgument &operator<<(bool arg)
QDBusArgument &operator<<(const QByteArray &arg)
QDBusArgument &operator<<(const QDBusVariant &arg)
QDBusArgument &operator<<(const QString &arg)
QDBusArgument &operator<<(const QStringList &arg)
QDBusArgument &operator<<(double arg)
QDBusArgument &operator<<(int arg)
QDBusArgument &operator<<(qlonglong arg)
QDBusArgument &operator<<(qulonglong arg)
QDBusArgument &operator<<(short arg)
QDBusArgument &operator<<(uint arg)
QDBusArgument &operator<<(ushort arg)
QDBusArgument &operator=(const QDBusArgument &other)
const QDBusArgument &operator>>(uchar &arg) const
const QDBusArgument &operator>>(QByteArray &arg) const
const QDBusArgument &operator>>(QDBusVariant &arg) const
const QDBusArgument &operator>>(QString &arg) const
const QDBusArgument &operator>>(QStringList &arg) const
const QDBusArgument &operator>>(bool &arg) const
const QDBusArgument &operator>>(double &arg) const
const QDBusArgument &operator>>(int &arg) const
const QDBusArgument &operator>>(qlonglong &arg) const
const QDBusArgument &operator>>(qulonglong &arg) const
const QDBusArgument &operator>>(short &arg) const
const QDBusArgument &operator>>(uint &arg) const
const QDBusArgument &operator>>(ushort &arg) const
QMetaType qDBusRegisterMetaType()
T qdbus_cast(const QDBusArgument &arg)

Description détaillée

Cette classe est utilisée pour envoyer des arguments via D-Bus à des applications distantes et pour les recevoir en retour. D-Bus offre un système de types extensible, basé sur quelques types primitifs et leurs associations. Voir la page Qt D-Bus Type System pour plus d'informations sur le système de types.

QDBusArgument est la classe centrale du système de types Qt D-Bus, fournissant des fonctions pour rassembler et séparer les types primitifs. Les types composés sont ensuite créés par association d'un ou plusieurs types primitifs dans des tableaux, des dictionnaires ou des structures.

L'exemple suivant illustre comment une structure contenant un entier et une chaîne de caractères peut être construite à l'aide du système de typesQt D-Bus :

struct MyStructure
{
    int count;
    QString name;

    // ...
};
Q_DECLARE_METATYPE(MyStructure)

// Marshall the MyStructure data into a D-Bus argument
QDBusArgument &operator<<(QDBusArgument &argument, const MyStructure &myStruct)
{
    argument.beginStructure();
    argument << myStruct.count << myStruct.name;
    argument.endStructure();
    return argument;
}

// Retrieve the MyStructure data from the D-Bus argument
const QDBusArgument &operator>>(const QDBusArgument &argument, MyStructure &myStruct)
{
    argument.beginStructure();
    argument >> myStruct.count >> myStruct.name;
    argument.endStructure();
    return argument;
}

Le type doit être enregistré avec qDBusRegisterMetaType() avant de pouvoir être utilisé avec QDBusArgument. Par conséquent, quelque part dans votre programme, vous devez ajouter le code suivant :

qDBusRegisterMetaType<MyStructure>();

Une fois enregistré, un type peut être utilisé dans des appels de méthode sortants (placés avec QDBusAbstractInterface::call()), dans des émissions de signaux provenant d'objets enregistrés ou dans des appels entrants provenant d'applications distantes.

Il est important de noter que les fonctions de streaming operator<< et operator>> doivent toujours produire le même nombre d'entrées dans le cas des structures, tant en lecture qu'en écriture (marshalling et demarshalling), sinon les appels et les signaux peuvent commencer à échouer silencieusement.

L'exemple suivant illustre cette mauvaise utilisation dans le contexte d'une classe qui peut contenir des données non valides :

//bad code
    // Wrongly marshall the MyTime data into a D-Bus argument
    QDBusArgument &operator<<(QDBusArgument &argument, const MyTime &mytime)
    {
        argument.beginStructure();
        if (mytime.isValid)
            argument << true << mytime.hour
                     << mytime.minute << mytime.second;
        else
            argument << false;
        argument.endStructure();
        return argument;
    }

Dans cet exemple, les fonctions operator<< et operator>> peuvent produire un nombre différent de lectures/écritures. Cela peut perturber le système de type Qt D-Bus et doit être évité.

Voir aussi QDBusAbstractInterface, Le système de type Qt D-Bus , Utiliser les adaptateurs, et qdbus_cast().

Documentation sur les types de membres

enum QDBusArgument::ElementType

Cette énumération décrit le type d'élément détenu par l'argument.

ConstanteValeurDescription de l'élément
QDBusArgument::BasicType0Un élément de base, qui est compris par QVariant. Les types suivants sont considérés comme des éléments de base : bool, byte, short, ushort, int, uint, qint64, quint64, double, QString, QByteArray, QDBusObjectPath, QDBusSignature
QDBusArgument::VariantType1L'élément de variante (QDBusVariant)
QDBusArgument::ArrayType2Un élément de tableau, généralement représenté par QList<T>. Remarque : QByteArray et les cartes associatives ne sont pas considérées comme des tableaux, même si le protocole D-Bus les transporte comme tels.
QDBusArgument::StructureType3Un type personnalisé représenté par une structure, comme QDateTime, QPoint, etc.
QDBusArgument::MapType4Un conteneur associatif, comme QMap<Key, Value> ou QHash<Key, Value>.
QDBusArgument::MapEntryType5Une entrée dans un conteneur associatif : la clé et la valeur forment un type d'entrée de carte.
QDBusArgument::UnknownType-1Le type est inconnu ou nous avons atteint la fin de la liste.

Voir également currentType().

Documentation des fonctions membres

QDBusArgument::QDBusArgument()

Construit un argument QDBusArgument vide.

Un objet QDBusArgument vide ne permet ni la lecture ni l'écriture.

QDBusArgument::QDBusArgument(const QDBusArgument &other)

Construit une copie de l'objet other QDBusArgument.

Les deux objets contiendront donc le même état à partir de ce moment. Les QDBusArguments sont explicitement partagés et, par conséquent, toute modification apportée à l'une des copies affectera également l'autre.

[noexcept] QDBusArgument::~QDBusArgument()

Se débarrasse des ressources associées à cet objet QDBusArgument.

QVariant QDBusArgument::asVariant() const

Renvoie l'argument courant sous la forme d'un QVariant. Les types de base seront décodés et renvoyés dans le QVariant, mais pour les types complexes, cette fonction renverra un objet QDBusArgument dans le QVariant. Il incombe à l'appelant de décoder l'argument (par exemple, en appelant asVariant() dans l'argument).

Par exemple, si l'argument courant est un INT32, cette fonction renverra un QVariant avec un argument de type QMetaType::Int. Pour un tableau d'INT32, elle renverra un QVariant contenant un QDBusArgument.

En cas d'erreur ou s'il n'y a plus d'arguments à décoder (c'est-à-dire si nous sommes à la fin de la liste d'arguments), cette fonction renverra un QVariant invalide.

Voir aussi atEnd().

bool QDBusArgument::atEnd() const

Renvoie true s'il n'y a plus d'éléments à extraire de cet objet QDBusArgument. Cette fonction est généralement utilisée dans les objets QDBusArgument renvoyés par beginMap() et beginArray().

void QDBusArgument::beginArray() const

Recourt à la récursivité dans le tableau D-Bus pour permettre l'extraction des éléments du tableau.

Cette fonction est généralement utilisée dans les opérateurs de streaming de operator>>, comme dans l'exemple suivant :

// Extract a MyArray array of MyElement elements
const QDBusArgument &operator>>(const QDBusArgument &argument, MyArray &myArray)
{
    argument.beginArray();
    myArray.clear();

    while (!argument.atEnd()) {
        MyElement element;
        argument >> element;
        myArray.append(element);
    }

    argument.endArray();
    return argument;
}

Si le type que vous souhaitez démarshaller est un QList ou l'une des classes de conteneurs de Qt qui prennent un paramètre de modèle, vous n'avez pas besoin de déclarer une fonction operator>> pour cela, puisque Qt D-Bus fournit des modèles génériques pour faire le travail de démarshallisation des données. Il en va de même pour les conteneurs de séquence de la STL, tels que std::list, std::vector, etc.

Voir également atEnd(), beginStructure() et beginMap().

void QDBusArgument::beginArray(QMetaType id)

Ouvre un nouveau tableau D-Bus adapté à l'ajout d'éléments du méta-type id.

Cette fonction est généralement utilisée dans les opérateurs de streaming operator<<, comme dans l'exemple suivant :

// Append an array of MyElement types
QDBusArgument &operator<<(QDBusArgument &argument, const MyArray &myArray)
{
    argument.beginArray(qMetaTypeId<MyElement>());
    for (const auto &element : myArray)
        argument << element;
    argument.endArray();
    return argument;
}

Si le type que vous voulez marshaller est un QList ou n'importe quelle classe de conteneur de Qt qui prend un paramètre de modèle, vous n'avez pas besoin de déclarer une fonction operator<< pour cela, puisque Qt D-Bus fournit des modèles génériques pour faire le travail de marshalling des données. Il en va de même pour les conteneurs de séquence de la STL, tels que std::list, std::vector, etc.

Voir également endArray(), beginStructure() et beginMap().

void QDBusArgument::beginMap() const

Recourt à la carte D-Bus pour permettre l'extraction des éléments de la carte.

Cette fonction est généralement utilisée dans les opérateurs de streaming operator>>, comme dans l'exemple suivant :

// Extract a MyDictionary map that associates integers to MyElement items
const QDBusArgument &operator>>(const QDBusArgument &argument, MyDictionary &myDict)
{
    argument.beginMap();
    myDict.clear();

    while (!argument.atEnd()) {
        int key;
        MyElement value;
        argument.beginMapEntry();
        argument >> key >> value;
        argument.endMapEntry();
        myDict.insert(key, value);
    }

    argument.endMap();
    return argument;
}

Si le type que vous souhaitez démarshaller est un QMap ou un QHash, il n'est pas nécessaire de déclarer une fonction operator>> pour lui, puisque Qt D-Bus fournit des modèles génériques pour effectuer le travail de démarshallage des données.

Voir aussi endMap(), beginStructure(), beginArray() et beginMapEntry().

void QDBusArgument::beginMap(QMetaType keyMetaType, QMetaType valueMetaType)

Ouvre une nouvelle carte D-Bus permettant d'ajouter des éléments. Les cartes sont des conteneurs qui associent une entrée (la clé) à une autre (la valeur), comme QMap ou QHash. Les identifiants des méta types clé et valeur de la carte doivent être transmis respectivement dans keyMetaType et valueMetaType.

Cette fonction est généralement utilisée dans les opérateurs de flux operator<<, comme dans l'exemple suivant :

// Append a dictionary that associates ints to MyValue types
QDBusArgument &operator<<(QDBusArgument &argument, const MyDictionary &myDict)
{
    argument.beginMap(QMetaType::fromType<int>(), QMetaType::fromType<MyValue>());
    MyDictionary::const_iterator i;
    for (i = myDict.cbegin(); i != myDict.cend(); ++i) {
        argument.beginMapEntry();
        argument << i.key() << i.value();
        argument.endMapEntry();
    }
    argument.endMap();
    return argument;
}

Il n'est généralement pas nécessaire de fournir une fonction operator<< ou operator>> pour les conteneurs associatifs tels que QHash ou std::map, puisque Qt D-Bus fournit des modèles génériques pour faire le travail de marshalling des données.

Voir aussi endMap(), beginStructure(), beginArray() et beginMapEntry().

void QDBusArgument::beginMapEntry()

Ouvre une entrée de carte D-Bus adaptée à l'ajout des entrées de clé et de valeur. Cette fonction n'est valable que lorsqu'une carte a été ouverte avec beginMap().

Voir beginMap() pour un exemple d'utilisation de cette fonction.

Voir également endMapEntry() et beginMap().

void QDBusArgument::beginMapEntry() const

Recourt à l'entrée de la carte D-Bus pour permettre l'extraction de la paire clé/valeur.

Voir beginMap() pour un exemple d'utilisation de cette fonction.

Voir également endMapEntry() et beginMap().

void QDBusArgument::beginStructure()

Ouvre une nouvelle structure D-Bus adaptée à l'ajout de nouveaux arguments.

Cette fonction est généralement utilisée dans les opérateurs de flux operator<<, comme dans l'exemple suivant :

QDBusArgument &operator<<(QDBusArgument &argument, const MyStructure &myStruct)
{
    argument.beginStructure();
    argument << myStruct.member1 << myStruct.member2;
    argument.endStructure();
    return argument;
}

Les structures peuvent contenir d'autres structures, de sorte que le code suivant est également valable :

QDBusArgument &operator<<(QDBusArgument &argument, const MyStructure &myStruct)
{
    argument.beginStructure();
    argument << myStruct.member1 << myStruct.member2;

    argument.beginStructure();
    argument << myStruct.member3.subMember1 << myStruct.member3.subMember2;
    argument.endStructure();

    argument << myStruct.member4;
    argument.endStructure();
    return argument;
}

Voir également endStructure(), beginArray() et beginMap().

void QDBusArgument::beginStructure() const

Ouvre une structure D-Bus adaptée à l'extraction d'éléments.

Cette fonction est généralement utilisée dans les opérateurs de flux operator>>, comme dans l'exemple suivant :

const QDBusArgument &operator>>(const QDBusArgument &argument, MyStructure &myStruct)
{
    argument.beginStructure();
    argument >> myStruct.member1 >> myStruct.member2 >> myStruct.member3;
    argument.endStructure();
    return argument;
}

Voir aussi endStructure(), beginArray() et beginMap().

QDBusArgument::ElementType QDBusArgument::currentType() const

Renvoie la classification du type de l'élément courant. Si une erreur de décodage du type se produit ou si nous sommes à la fin de l'argument, cette fonction renvoie QDBusArgument::UnknownType.

Cette fonction n'a de sens que lors de la dématérialisation des arguments. Si elle est utilisée lors du marshalling, elle renverra toujours UnknownType.

void QDBusArgument::endArray()

Ferme un tableau D-Bus ouvert avec beginArray(). Cette fonction doit être appelée le même nombre de fois que beginArray().

Voir aussi beginArray(), endStructure() et endMap().

void QDBusArgument::endArray() const

Ferme le tableau D-Bus et permet l'extraction de l'élément suivant après le tableau.

Voir aussi beginArray().

void QDBusArgument::endMap()

Ferme une carte D-Bus ouverte avec beginMap(). Cette fonction doit être appelée le même nombre de fois que beginMap().

Voir aussi beginMap(), endStructure() et endArray().

void QDBusArgument::endMap() const

Ferme la carte D-Bus et permet l'extraction de l'élément suivant après la carte.

Voir aussi beginMap().

void QDBusArgument::endMapEntry()

Ferme une entrée de carte D-Bus ouverte avec beginMapEntry(). Cette fonction doit être appelée le même nombre de fois que beginMapEntry().

Voir aussi beginMapEntry().

void QDBusArgument::endMapEntry() const

Ferme l'entrée de la carte D-Bus et permet l'extraction de l'élément suivant de la carte.

Voir aussi beginMapEntry().

void QDBusArgument::endStructure()

Ferme une structure D-Bus ouverte avec beginStructure(). Cette fonction doit être appelée le même nombre de fois que beginStructure().

Voir aussi beginStructure(), endArray() et endMap().

void QDBusArgument::endStructure() const

Ferme la structure D-Bus et permet l'extraction de l'élément suivant après la structure.

Voir également beginStructure().

[noexcept] void QDBusArgument::swap(QDBusArgument &other)

Remplace cet argument par other. Cette opération est très rapide et n'échoue jamais.

QDBusArgument &QDBusArgument::operator<<(uchar arg)

Ajoute la valeur primitive arg de type BYTE au flux D-Bus.

QDBusArgument &QDBusArgument::operator<<(bool arg)

Ajoute la valeur primitive arg de type BOOLEAN au flux D-Bus.

Il s'agit d'une fonction surchargée.

QDBusArgument &QDBusArgument::operator<<(const QByteArray &arg)

Ajoute le QByteArray donné par arg en tant que ARRAY of BYTE au flux D-Bus.

QStringList et QByteArray sont les deux seuls types non primitifs pris en charge directement par QDBusArgument en raison de leur utilisation répandue dans les applications Qt.

D'autres tableaux sont pris en charge par des types composés dans Qt D-Bus.

Il s'agit d'une fonction surchargée.

QDBusArgument &QDBusArgument::operator<<(const QDBusVariant &arg)

Ajoute la valeur primitive arg du type VARIANT au flux D-Bus.

Un type de variante D-Bus peut contenir n'importe quel type, y compris d'autres variantes. Il est similaire au type Qt QVariant.

Il s'agit d'une fonction surchargée.

QDBusArgument &QDBusArgument::operator<<(const QString &arg)

Ajoute la valeur primitive arg de type STRING (chaîne de caractères Unicode) au flux D-Bus.

Il s'agit d'une fonction surchargée.

QDBusArgument &QDBusArgument::operator<<(const QStringList &arg)

Ajoute le QStringList donné par arg en tant que ARRAY of STRING au flux D-Bus.

QStringList et QByteArray sont les deux seuls types non primitifs pris en charge directement par QDBusArgument en raison de leur utilisation répandue dans les applications Qt.

D'autres tableaux sont pris en charge par des types composés dans Qt D-Bus.

Il s'agit d'une fonction surchargée.

QDBusArgument &QDBusArgument::operator<<(double arg)

Ajoute la valeur primitive arg de type DOUBLE (virgule flottante à double précision) au flux D-Bus.

Il s'agit d'une fonction surchargée.

QDBusArgument &QDBusArgument::operator<<(int arg)

Ajoute la valeur primitive arg de type INT32 au flux D-Bus.

Il s'agit d'une fonction surchargée.

QDBusArgument &QDBusArgument::operator<<(qlonglong arg)

Ajoute la valeur primitive arg de type INT64 au flux D-Bus.

Il s'agit d'une fonction surchargée.

QDBusArgument &QDBusArgument::operator<<(qulonglong arg)

Ajoute la valeur primitive arg de type UINT64 au flux D-Bus.

Il s'agit d'une fonction surchargée.

QDBusArgument &QDBusArgument::operator<<(short arg)

Ajoute la valeur primitive arg de type INT16 au flux D-Bus.

Il s'agit d'une fonction surchargée.

QDBusArgument &QDBusArgument::operator<<(uint arg)

Ajoute la valeur primitive arg de type UINT32 au flux D-Bus.

Il s'agit d'une fonction surchargée.

QDBusArgument &QDBusArgument::operator<<(ushort arg)

Ajoute la valeur primitive arg de type UINT16 au flux D-Bus.

Il s'agit d'une fonction surchargée.

QDBusArgument &QDBusArgument::operator=(const QDBusArgument &other)

Copie l'objet other QDBusArgument dans celui-ci.

Les deux objets contiendront donc le même état à partir de ce moment. Les QDBusArguments sont explicitement partagés et, par conséquent, toute modification apportée à l'une des copies affectera également l'autre.

const QDBusArgument &QDBusArgument::operator>>(uchar &arg) const

Extrait du flux D-Bus un argument primitif D-Bus de type BYTE et le place dans arg.

const QDBusArgument &QDBusArgument::operator>>(QByteArray &arg) const

Extrait un tableau d'octets du flux D-Bus et le renvoie sous forme de QByteArray.

QStringList et QByteArray sont les deux seuls types non primitifs pris en charge directement par QDBusArgument en raison de leur utilisation répandue dans les applications Qt.

Les autres tableaux sont pris en charge par des types composés dans Qt D-Bus.

Il s'agit d'une fonction surchargée.

const QDBusArgument &QDBusArgument::operator>>(QDBusVariant &arg) const

Extrait du flux D-Bus un argument primitif D-Bus de type VARIANT.

Un type de variante D-Bus peut contenir n'importe quel type, y compris d'autres variantes. Il est similaire au type Qt QVariant.

Si la variante contient un type qui n'est pas directement pris en charge par QDBusArgument, la valeur de QDBusVariant renvoyée contiendra un autre QDBusArgument. Il est de votre responsabilité de la transformer en un autre type.

Il s'agit d'une fonction surchargée.

const QDBusArgument &QDBusArgument::operator>>(QString &arg) const

Extrait un argument primitif D-Bus de type STRING (chaîne de caractères Unicode) du flux D-Bus.

Il s'agit d'une fonction surchargée.

const QDBusArgument &QDBusArgument::operator>>(QStringList &arg) const

Extrait un tableau de chaînes de caractères du flux D-Bus et le renvoie sous forme de QStringList.

QStringList et QByteArray sont les deux seuls types non primitifs pris en charge directement par QDBusArgument en raison de leur utilisation répandue dans les applications Qt.

Les autres tableaux sont pris en charge par des types composés dans Qt D-Bus.

Il s'agit d'une fonction surchargée.

const QDBusArgument &QDBusArgument::operator>>(bool &arg) const

Extrait un argument primitif D-Bus de type BOOLEAN du flux D-Bus.

Il s'agit d'une fonction surchargée.

const QDBusArgument &QDBusArgument::operator>>(double &arg) const

Extrait un argument primitif D-Bus de type DOUBLE (virgule flottante à double précision) du flux D-Bus.

Il s'agit d'une fonction surchargée.

const QDBusArgument &QDBusArgument::operator>>(int &arg) const

Extrait un argument primitif D-Bus de type INT32 du flux D-Bus.

Il s'agit d'une fonction surchargée.

const QDBusArgument &QDBusArgument::operator>>(qlonglong &arg) const

Extrait un argument primitif D-Bus de type INT64 du flux D-Bus.

Il s'agit d'une fonction surchargée.

const QDBusArgument &QDBusArgument::operator>>(qulonglong &arg) const

Extrait un argument primitif D-Bus de type UINT64 du flux D-Bus.

Il s'agit d'une fonction surchargée.

const QDBusArgument &QDBusArgument::operator>>(short &arg) const

Extrait un argument primitif D-Bus de type INT16 du flux D-Bus.

Il s'agit d'une fonction surchargée.

const QDBusArgument &QDBusArgument::operator>>(uint &arg) const

Extrait un argument primitif D-Bus de type UINT32 du flux D-Bus.

Il s'agit d'une fonction surchargée.

const QDBusArgument &QDBusArgument::operator>>(ushort &arg) const

Extrait un argument primitif D-Bus de type UINT16 du flux D-Bus.

Il s'agit d'une fonction surchargée.

Non-membres apparentés

template <typename T> QMetaType qDBusRegisterMetaType()

Enregistre T avec le système de typeQt D-Bus et le Qt meta-type system, s'il n'est pas déjà enregistré.

Pour enregistrer un type, il faut le déclarer comme méta-type avec la macro Q_DECLARE_METATYPE(), puis l'enregistrer comme dans l'exemple suivant :

#include <QDBusMetaType>

qDBusRegisterMetaType<MyClass>();

Si T n'est pas l'une des classes conteneurs de Qt XML, les opérateurs de flux operator<< et operator>> entre T et QDBusArgument doivent être déjà déclarés. Voir la page Qt D-Bus Type System pour plus d'informations sur la façon de déclarer de tels types.

Cette fonction renvoie l'identifiant du méta type Qt pour le type (la même valeur que celle renvoyée par qRegisterMetaType()).

Note : La caractéristique selon laquelle un T héritant d'un type streamable (y compris les conteneurs QList, QHash ou QMap) peut être streamé sans fournir des operator<< et operator>> personnalisés est dépréciée à partir de Qt 5.7, car elle ignore tout ce qui se trouve dans T sauf la classe de base. Il n'y a pas de diagnostic. Vous devriez toujours fournir ces opérateurs pour tous les types que vous souhaitez streamer et ne pas compter sur les opérateurs de stream fournis par Qt pour les classes de base.

Note : Cette fonction est à l'épreuve des threads.

Voir aussi Qt D-Bus Type System, qRegisterMetaType(), et QMetaType.

template <typename T> T qdbus_cast(const QDBusArgument &arg)

Tentatives de démarshall du contenu de arg dans le type T. Par exemple :

MyType item = qdbus_cast<Type>(argument);

Notez qu'il est équivalent à ce qui suit :

MyType item;
argument >> item;

© 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.