Any Class
class QtProtobuf::Anyprotobuf Any型の操作を簡略化するヘルパークラス。さらに...
Header: | #include <Any> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS ProtobufWellKnownTypes) target_link_libraries(mytarget PRIVATE Qt6::ProtobufWellKnownTypes) |
qmake: | QT += protobufwellknowntypes |
Since: | Qt 6.6 |
Inherits: | 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 つのインスタンス、lhs およびrhs が異なる場合、true を返します。
[noexcept]
bool operator==(const QtProtobuf::Any &lhs, const QtProtobuf::Any &rhs)
Any の 2 つのインスタンス、lhs とrhs が等しい場合、true を返します。
©2024 The Qt Company Ltd. 本書に含まれるドキュメントのコントリビューションの著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。