Auf dieser Seite

QtProtobuf::Any Class

class QtProtobuf::Any

Eine 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

KategorieVergleichbare Typen
GleichheitQtProtobuf::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)
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:

QByteArray value() const
void setValue(const QByteArray &value)

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.