Any Class
class QtProtobuf::Anyprotobuf 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() を参照してください。
注釈 プロパティ値のゲッター関数。
QtProtobuf::Any &Any::operator=(const QtProtobuf::Any &other)
other のデータをこのインスタンスにコピーする。
関連する非会員
[noexcept]
bool operator!=(const QtProtobuf::Any &lhs, const QtProtobuf::Any &rhs)
Any の 2 つのインスタンス、lhs とrhs が異なる場合、true を返します。
[noexcept]
bool operator==(const QtProtobuf::Any &lhs, const QtProtobuf::Any &rhs)
Any の 2 つのインスタンス、lhs とrhs が等しい場合に真を返します。
© 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.