Any Class

class QtProtobuf::Any

Eine Hilfsklasse, die die Arbeit mit dem Typ protobuf Any vereinfacht. Mehr...

Kopfzeile: #include <Any>
CMake: find_package(Qt6 REQUIRED COMPONENTS ProtobufWellKnownTypes)
target_link_libraries(mytarget PRIVATE Qt6::ProtobufWellKnownTypes)
qmake: QT += protobufwellknowntypes
Since: Qt 6.6
Vererbt: QProtobufMessage

Diese Klasse ist gleichwertig vergleichbar.

Öffentliche Funktionen

Any()
Any(const 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=(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)

Detaillierte Beschreibung

Die Klasse Any ermöglicht ein einfaches Casting zu und von anderen Typen mit as() und fromMessage().

Sie ist der Typ, der im von qtprotobufgen generierten Code verwendet wird, wenn eine Nachricht ein Feld vom Typ google.protobuf.Any enthält.

Dokumentation der Mitgliedsfunktionen

Any::Any()

Konstruiert eine voreingestellte, leere Instanz von Any.

Any::Any(const QtProtobuf::Any &other)

Konstruiert eine Kopie von other.

[noexcept] Any::~Any()

Zerstört 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 den Wert der zurückgegebenen Any-Instanz. Die typeUrl() dieser Instanz wird aus einem Präfix, einem Schrägstrich und dem aus QProtobufMessage::propertyOrdering erhaltenen Nachrichtennamen unter Verwendung von serializer gebildet. Wenn typeUrlPrefix angegeben wird, wird es als Präfix verwendet, andernfalls wird "type.googleapis.com" verwendet.

Hinweis: T muss eine Klasse sein, die von QProtobufMessage mit dem Makro Q_PROTOBUF_OBJECT abgeleitet ist, oder (für eine verschachtelte Any-Nachricht) Any selbst sein.

void Any::setTypeUrl(const QString &typeUrl)

Legt den URL-Typ für die enthaltenen Daten auf typeUrl fest.

Hinweis: Die Eingabe wird nicht daraufhin überprüft, ob sie korrekt ist oder ein gültiges Format hat.

Hinweis: Setter-Funktion für die Eigenschaft typeUrl.

Siehe auch typeUrl() und fromMessage().

void Any::setValue(const QByteArray &value)

Setzt die Rohbytes des gespeicherten Wertes auf value.

value muss die Ausgabe der Serialisierung einer Nachricht sein.

Hinweis: Setter-Funktion für die Eigenschaft value.

Siehe auch value() und fromMessage().

QString Any::typeUrl() const

Gibt die URL des Typs des Any-Objekts zurück. Die URL ist als Hinweis darauf gedacht, was die enthaltenen Daten wirklich sind.

Hinweis: Qt hat keine Unterstützung für die dynamische Beschaffung potenzieller Rezepte für die Dekonstruktion von Typen und verwendet die Typ-URL lediglich, 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(), bevor die Daten mit serializer deserialisiert werden.

Schlägt die Überprüfung oder Deserialisierung fehl, gibt sie std::nullopt zurück.

Hinweis: T muss eine Klasse sein, die von QProtobufMessage mit dem Makro Q_PROTOBUF_OBJECT abgeleitet wurde, oder (bei einer verschachtelten Any-Nachricht) Any selbst sein.

QByteArray Any::value() const

Gibt die Rohbytes zurück, aus denen der gespeicherte Wert besteht.

Lesen Sie typeUrl(), um festzustellen, wie diese Bytes zu interpretieren sind.

Hinweis: Getter-Funktion für den Eigenschaftswert.

Siehe auch setValue() und typeUrl().

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, unterschiedlich 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.

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