Any Class

class QtProtobuf::Any

protobuf Any型の操作を簡略化するヘルパークラス。さらに...

ヘッダー #include <Any>
CMake: find_package(Qt6 REQUIRED COMPONENTS ProtobufWellKnownTypes)
target_link_libraries(mytarget PRIVATE Qt6::ProtobufWellKnownTypes)
qmake: QT += protobufwellknowntypes
以来:Qt 6.6
継承: QProtobufMessage

このクラスは等価比較可能です。

パブリック関数

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)

静的パブリックメンバ

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)

詳細説明

Any クラスを使用すると、as() およびfromMessage() を使用して他の型との間で簡単にキャストできます。

これは、メッセージにgoogle.protobuf.Any 型のフィールドが含まれる場合にqtprotobufgenによって生成されるコードで使用される型です。

メンバ関数のドキュメント

Any::Any()

デフォルトの空の Any インスタンスを構築します。

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

other のコピーを作成する。

[noexcept] Any::~Any()

この Any インスタンスを破棄します。

[static] template <typename T> QtProtobuf::Any Any::fromMessage(QAbstractProtobufSerializer *serializer, const T &message, QAnyStringView typeUrlPrefix)

この関数は、返される Any インスタンスの値として、指定されたmessage をシリアル化します。このインスタンスのtypeUrl() は、プレフィックス、フォワード・スラッシュ、およびserializer を使用してQProtobufMessage::propertyOrdering から取得したメッセージ名から構築されます。typeUrlPrefix が指定されている場合はそれがプレフィックスとして使用され、そうでない場合は"type.googleapis.com" が使用されます。

注釈 T は、Q_PROTOBUF_OBJECT マクロを使用してQProtobufMessage から派生したクラスであるか、または(ネストされた Any メッセージの場合は)Any 自身でなければなりません。

void Any::setTypeUrl(const QString &typeUrl)

typeUrl に含まれるデータの型 URL を設定する。

注: 入力が正しいか、有効な形式であるかをテストするための検証は行われない。

注: typeUrl プロパティのセッター関数。

typeUrl() およびfromMessage()も参照

void Any::setValue(const QByteArray &value)

格納されている値の生のバイトをvalue に設定する。

value は、メッセージのシリアライズの出力でなければなりません。

注: value プロパティのセッター関数。

value() およびfromMessage()も参照

QString Any::typeUrl() const

Any オブジェクトのタイプ URL を返します。URL は、含まれているデータが実際に何であるかを示すヒントとして使用されます。

注釈 Qt には、型を分解するための潜在的なレシピを動的に取得するサポートはなく、as<T>() に T として渡された型が正しい型であることを確認するために型 URL を使用するだけです。

注: プロパティ typeUrl のゲッター関数。

setTypeUrl() およびvalue()も参照のこと

template <typename T> std::optional<T> Any::unpack(QAbstractProtobufSerializer *serializer) const

この関数は、serializer を使ってデータをデシリアライズする前に、Tのメッ セージ名とtypeUrl ()の値を比較する。

検証またはデシリアライズに失敗すると、std::nullopt を返します。

注釈 T は、Q_PROTOBUF_OBJECT マクロを使用してQProtobufMessage から派生したクラスであるか、または(ネストされた Any メッセージの場合は)Any 自身である必要があります。

QByteArray Any::value() const

格納されている値を構成する生のバイトを返す。

これらのバイトをどのように解釈するかは、typeUrl() を参照してください。

注釈 プロパティ値のゲッター関数。

setValue() およびtypeUrl()も参照

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

other のデータをこのインスタンスにコピーする。

関連する非会員

[noexcept] bool operator!=(const QtProtobuf::Any &lhs, const QtProtobuf::Any &rhs)

Any の 2 つのインスタンス、lhsrhs が異なる場合、true を返します。

[noexcept] bool operator==(const QtProtobuf::Any &lhs, const QtProtobuf::Any &rhs)

Any の 2 つのインスタンス、lhsrhs が等しい場合に真を返します。

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