QtProtobuf::Any Class
class QtProtobuf::AnyUne classe d'aide permettant de simplifier l'utilisation du type « Any » de Protobuf. En savoir plus...
| En-tête : | #include <qprotobufanysupport.h> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS ProtobufWellKnownTypes) target_link_libraries(mytarget PRIVATE Qt6::ProtobufWellKnownTypes) |
| qmake : | QT += protobufwellknowntypes |
| Depuis : | Qt 6.6 |
| Hérite de : | QProtobufMessage |
Comparaisons QtProtobuf::Any
| Catégorie | Types comparables |
|---|---|
| égalité | QtProtobuf::Any |
Propriétés
Fonctions publiques
| Any() | |
| Any(const QtProtobuf::Any &other) | |
| Any(QtProtobuf::Any &&other) | |
| ~Any() | |
| void | setTypeUrl(const QString &typeUrl) |
| void | setValue(const QByteArray &value) |
| QString | typeUrl() const |
| std::optional<T> | unpack(QAbstractProtobufSerializer *serializer) const |
| QByteArray | value() const |
| QtProtobuf::Any & | operator=(QtProtobuf::Any &&other) |
| QtProtobuf::Any & | operator=(const QtProtobuf::Any &other) |
Membres publics statiques
| QtProtobuf::Any | fromMessage(QAbstractProtobufSerializer *serializer, const T &message, QAnyStringView typeUrlPrefix) |
Éléments non membres associés
| bool | operator!=(const QtProtobuf::Any &lhs, const QtProtobuf::Any &rhs) |
| bool | operator==(const QtProtobuf::Any &lhs, const QtProtobuf::Any &rhs) |
Description détaillée
La classe Any permet de convertir facilement des valeurs vers et depuis d'autres types à l'aide des méthodes as() et fromMessage().
Il s'agit du type utilisé dans le code généré par qtprotobufgen lorsqu'un message contient un champ de type google.protobuf.Any.
Documentation des propriétés
typeUrl : QString
Cette propriété contient l'URL de type de l'objet `Any`. L'URL sert d'indication sur la nature réelle des données contenues.
Remarque : Qt ne prend pas en charge l’obtention dynamique de recettes potentielles pour la décomposition des types et utilise simplement l’URL de type pour vérifier que les types passés en tant que T à as<T>() sont du type correct.
Fonctions d'accès :
| QString | typeUrl() const |
| void | setTypeUrl(const QString &typeUrl) |
Voir également value.
value : QByteArray
Cette propriété contient les octets bruts qui composent la valeur stockée dans l'objet Any.
Consultez la page typeUrl pour savoir comment interpréter ces octets.
Fonctions d'accès :
Voir également typeUrl.
Documentation sur les fonctions membres
Any::Any()
Crée une instance vide de `Any` avec les valeurs par défaut.
Any::Any(const QtProtobuf::Any &other)
Crée une copie de other.
[constexpr noexcept default] Any::Any(QtProtobuf::Any &&other)
Crée par construction une instance de ` Any`.
[noexcept] Any::~Any()
Supprime cette instance de Any
[static] template <typename T> QtProtobuf::Any Any::fromMessage(QAbstractProtobufSerializer *serializer, const T &message, QAnyStringView typeUrlPrefix)
Cette fonction sérialise l'message donné en tant que valeur de l'instance `Any` renvoyée. La méthode ` typeUrl()` de cette instance est construite à partir d'un préfixe, d'une barre oblique et du nom du message obtenu depuis ` QProtobufMessage::propertyOrdering ` à l'aide de ` serializer`. Si ` typeUrlPrefix ` est fourni, il est utilisé comme préfixe ; sinon, c'est ` "type.googleapis.com" ` qui est utilisé.
Remarque : T doit être une classe dérivée de QProtobufMessage à l'aide de la macro Q_PROTOBUF_OBJECT ou (pour un message Any imbriqué) être Any lui-même.
void Any::setTypeUrl(const QString &typeUrl)
Définit l'URL de type pour les données contenues sur typeUrl.
Remarque : aucune vérification n'est effectuée sur la valeur saisie pour s'assurer qu'elle est correcte ou au format valide.
Remarque : fonctionde définition pour la propriété ` typeUrl`.
Voir également typeUrl() et fromMessage().
void Any::setValue(const QByteArray &value)
Définit les octets bruts de la valeur stockée à l'adresse value.
value Doit correspondre au résultat de la sérialisation d'un message.
Remarque : fonctionde définition de la propriété ` value`.
Voir également ` value()` et ` fromMessage()`.
QString Any::typeUrl() const
Renvoie l'URL de type de l'objet `Any`. Cette URL sert d'indication sur la nature réelle des données contenues.
Remarque : Qt ne prend pas en charge l'obtention dynamique d'éventuelles recettes permettant de décomposer les types et utilise simplement l'URL de type pour vérifier que les types passés en tant que T à as<T>() sont bien du type correct.
Remarque : fonctionde lecture pour la propriété typeUrl.
Voir également setTypeUrl() et value().
template <typename T> std::optional<T> Any::unpack(QAbstractProtobufSerializer *serializer) const
Cette fonction compare le nom du message de T à la valeur de ` typeUrl()` avant de désérialiser les données à l'aide de ` serializer`.
Si la vérification ou la désérialisation échoue, elle renvoie std::nullopt.
Remarque : T doit être une classe dérivée de QProtobufMessage à l'aide de la macro Q_PROTOBUF_OBJECT ou (pour un message Any imbriqué) être de type Any lui-même.
QByteArray Any::value() const
Renvoie les octets bruts qui composent la valeur stockée.
Consultez typeUrl() pour savoir comment interpréter ces octets.
Remarque : fonction de lecture (getter ) pour la propriété value.
Voir également setValue() et typeUrl().
[noexcept default] QtProtobuf::Any &Any::operator=(QtProtobuf::Any &&other)
Cette opération attribue l'other à cette instance Any.
QtProtobuf::Any &Any::operator=(const QtProtobuf::Any &other)
Copie les données de other dans cette instance.
Personnes associées non membres
[noexcept] bool operator!=(const QtProtobuf::Any &lhs, const QtProtobuf::Any &rhs)
Renvoie « true » si les deux instances de Any, lhs et rhs, sont distinctes.
[noexcept] bool operator==(const QtProtobuf::Any &lhs, const QtProtobuf::Any &rhs)
Renvoie « true » si les deux instances de Any, lhs et rhs, sont identiques.
© 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.