QtProtobuf::Any Class
class QtProtobuf::AnyEine Hilfsklasse zur Vereinfachung der Arbeit mit dem Protobuf-Typ „Any“. Mehr dazu...
| Header: | #include <qprotobufanysupport.h> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS ProtobufWellKnownTypes) target_link_libraries(mytarget PRIVATE Qt6::ProtobufWellKnownTypes) |
| qmake: | QT += protobufwellknowntypes |
| Seit: | Qt 6.6 |
| Erbt von: | QProtobufMessage |
QtProtobuf::Any-Vergleiche
| Kategorie | Vergleichbare Typen |
|---|---|
| Gleichheit | QtProtobuf::Any |
Eigenschaften
Öffentliche Funktionen
| 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) |
Statische öffentliche Mitglieder
| QtProtobuf::Any | fromMessage(QAbstractProtobufSerializer *serializer, const T &message, QAnyStringView typeUrlPrefix) |
Zugehörige Nicht-Mitglieder
| bool | operator!=(const QtProtobuf::Any &lhs, const QtProtobuf::Any &rhs) |
| bool | operator==(const QtProtobuf::Any &lhs, const QtProtobuf::Any &rhs) |
Ausführliche Beschreibung
Die Klasse „Any“ ermöglicht mithilfe von „as()“ und „ fromMessage()“ eine einfache Typumwandlung zu und von anderen Typen.
Dieser Typ wird in dem von qtprotobufgen generierten Code verwendet, wenn eine Nachricht ein Feld vom Typ „ google.protobuf.Any “ enthält.
Dokumentation der Eigenschaften
typeUrl : QString
Diese Eigenschaft enthält die Typ-URL des „Any“-Objekts. Die URL dient als Hinweis darauf, um welche Daten es sich tatsächlich handelt.
Hinweis: Qt bietet keine Unterstützung für das dynamische Abrufen möglicher Rezepte zur Zerlegung von Typen und verwendet lediglich die Typ-URL, um zu überprüfen, ob die als T an „ as<T>() “ übergebenen Typen vom richtigen Typ sind.
Zugriffsfunktionen:
| QString | typeUrl() const |
| void | setTypeUrl(const QString &typeUrl) |
Siehe auch „ value “.
value : QByteArray
Diese Eigenschaft enthält die Rohbytes, aus denen sich der im Any-Objekt gespeicherte Wert zusammensetzt.
Informationen zur Interpretation dieser Bytes finden Sie unter typeUrl.
Zugriffsfunktionen:
Siehe auch typeUrl.
Dokumentation zu den Mitgliedsfunktionen
Any::Any()
Erstellt eine leere Instanz von „Any“ mit Standardwerten.
Any::Any(const QtProtobuf::Any &other)
Erstellt eine Kopie von „ other “.
[constexpr noexcept default] Any::Any(QtProtobuf::Any &&other)
Erstellt eine Instanz von „ Any “.
[noexcept] Any::~Any()
Löscht diese Instanz von „Any“
[static] template <typename T> QtProtobuf::Any Any::fromMessage(QAbstractProtobufSerializer *serializer, const T &message, QAnyStringView typeUrlPrefix)
Diese Funktion serialisiert die angegebene ` message ` als Wert der zurückgegebenen `Any`-Instanz. Die Methode ` typeUrl()` dieser Instanz wird aus einem Präfix, einem Schrägstrich und dem über ` QProtobufMessage::propertyOrdering ` mithilfe von ` serializer` abgerufenen Nachrichtennamen gebildet. Wird ` typeUrlPrefix ` angegeben, wird dieses als Präfix verwendet, andernfalls wird ` "type.googleapis.com" ` verwendet.
Hinweis: T muss eine von QProtobufMessage abgeleitete Klasse mit dem Makro Q_PROTOBUF_OBJECT sein oder (bei einer verschachtelten Any-Nachricht) selbst Any sein.
void Any::setTypeUrl(const QString &typeUrl)
Legt die Typ-URL für die enthaltenen Daten auf typeUrl fest.
Hinweis: Die Eingabe wirdnicht überprüft, um festzustellen, ob sie korrekt ist oder ein gültiges Format aufweist.
Hinweis: Setter -Funktion für die Eigenschaft „ typeUrl “.
Siehe auch „ typeUrl()“ und „ fromMessage()“.
void Any::setValue(const QByteArray &value)
Legt die Rohbytes des unter „ value “ gespeicherten Werts fest.
value Muss das Ergebnis der Serialisierung einer Nachricht sein.
Hinweis: Setter -Funktion für die Eigenschaft ` value`.
Siehe auch ` value()` und ` fromMessage()`.
QString Any::typeUrl() const
Gibt die Typ-URL des Any-Objekts zurück. Die URL dient als Hinweis darauf, um welche Art von Daten es sich tatsächlich handelt.
Hinweis: Qt bietet keine Unterstützung für das dynamische Abrufen möglicher Verfahren zur Typzerlegung und verwendet lediglich die Typ-URL, um zu überprüfen, ob die als `T` an ` as<T>() ` übergebenen Typen vom richtigen Typ sind.
Hinweis: Getter-Funktion für die Eigenschaft `typeUrl`.
Siehe auch ` setTypeUrl()` und ` value()`.
template <typename T> std::optional<T> Any::unpack(QAbstractProtobufSerializer *serializer) const
Diese Funktion vergleicht den Nachrichtennamen von T mit dem Wert von typeUrl() vor der Deserialisierung der Daten mithilfe von serializer.
Fällt die Überprüfung oder die Deserialisierung fehl, wird „ std::nullopt “ zurückgegeben.
Hinweis: T muss eine von QProtobufMessage abgeleitete Klasse mit dem Makro Q_PROTOBUF_OBJECT sein oder (bei einer verschachtelten Any-Nachricht) selbst Any sein.
QByteArray Any::value() const
Gibt die Rohbytes zurück, aus denen sich der gespeicherte Wert zusammensetzt.
Informationen zur Interpretation dieser Bytes finden Sie unter typeUrl().
Hinweis: Getter -Funktion für den Eigenschaftswert.
Siehe auch setValue() und typeUrl().
[noexcept default] QtProtobuf::Any &Any::operator=(QtProtobuf::Any &&other)
Weist „ other “ dieser „ Any “-Instanz zu.
QtProtobuf::Any &Any::operator=(const QtProtobuf::Any &other)
Kopiert die Daten von other in diese Instanz.
Verwandte Nicht-Mitglieder
[noexcept] bool operator!=(const QtProtobuf::Any &lhs, const QtProtobuf::Any &rhs)
Gibt „true“ zurück, wenn die beiden Instanzen von „Any“, „ lhs “ und „ rhs “, voneinander verschieden sind.
[noexcept] bool operator==(const QtProtobuf::Any &lhs, const QtProtobuf::Any &rhs)
Gibt „true“ zurück, wenn die beiden Instanzen von „Any“, „ lhs “ und „ rhs “, gleich sind.
© 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.