Any Class

class QtProtobuf::Any

protobuf 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 つのインスタンス、lhsrhs が等しい場合、true を返します。

©2024 The Qt Company Ltd. 本書に含まれるドキュメントのコントリビューションの著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。