QAbstractProtobufSerializer Class

QAbstractProtobufSerializer クラスは、シリアライズ/デシリアライズの基本関数を表すインターフェイスです。詳細...

ヘッダー #include <QAbstractProtobufSerializer>
CMake: find_package(Qt6 REQUIRED COMPONENTS Protobuf)
target_link_libraries(mytarget PRIVATE Qt6::Protobuf)
以来:Qt 6.5
継承者

QProtobufJsonSerializer およびQProtobufSerializer

注意:このクラスのすべての関数はリエントラントです。

パブリック型

(since 6.8) enum class Error { None, InvalidHeader, UnknownType, UnexpectedEndOfStream, InvalidFormat }

パブリック関数

virtual ~QAbstractProtobufSerializer()
bool deserialize(QProtobufMessage *message, QByteArrayView data) const
(since 6.8) virtual QAbstractProtobufSerializer::Error lastError() const = 0
(since 6.8) virtual QString lastErrorString() const = 0
QByteArray serialize(const QProtobufMessage *message) const

マクロ

詳細説明

QProtobufSerializer クラスは、QProtobufMessage を継承する protobuf メッセージを実装するクラスのシリアライザ/デシリアライザを登録します。これらのクラスは、CMake 関数qt_add_protobufを使用するか、qtprotobufgenを直接実行して、.proto ファイルに基づいて自動的に生成されます。

このクラスは、特定のシリアライザのベースとして使用する必要があります。handlers プロパティには、すべてのメッセージ固有のシリアライザが含まれており、シリアライズ/デシリアライズ時に使用する必要があります。継承されたクラスは、登録されたメッセージのシリアライズ/デシリアライズ関数が使用する仮想メソッドのスコープを再実装する必要があります。

メンバ型ドキュメント

[since 6.8] enum class QAbstractProtobufSerializer::Error

この列挙型には、デシリアライズ中に発生する可能性のあるエラーが含まれています。エラーが発生した場合は、lastErrorString() をコールして人間が読めるエラーメッセージを取得します。

定数説明
QAbstractProtobufSerializer::Error::None0エラーは発生しませんでした。
QAbstractProtobufSerializer::Error::InvalidHeader1メッセージのヘッダをデコードしようとして、何か問題が発生しました。
QAbstractProtobufSerializer::Error::UnknownType2メッセージのシリアライズまたはデシリアライズ中に、メッセージ・フィールドに対応するデシリアライザが見つかりませんでした。
QAbstractProtobufSerializer::Error::UnexpectedEndOfStream3メッセージのデシリアライズ中に、ストリームが予期せず終了しました。
QAbstractProtobufSerializer::Error::InvalidFormat4データの形式が無効です。例えば、JSON 値がフィールド・タイプと一致しません。

この列挙型は Qt 6.8 で導入されました。

メンバ関数ドキュメント

[virtual noexcept] QAbstractProtobufSerializer::~QAbstractProtobufSerializer()

このQAbstractProtobufSerializer を破壊する。

bool QAbstractProtobufSerializer::deserialize(QProtobufMessage *message, QByteArrayView data) const

登録された Protobuf メッセージmessageQByteArray data からデシリアライズする。messagenullptr であってはならない。デシリアライズが成功した場合はtrue を返し、そうでない場合はfalse を返します。

data の予期しない/未知のプロパティはスキップされます。

serialize()も参照

[pure virtual, since 6.8] QAbstractProtobufSerializer::Error QAbstractProtobufSerializer::lastError() const

シリアライザーインスタンスの最後のエラーを返します。

この関数は Qt 6.8 で導入されました。

lastErrorString()も参照してください

[pure virtual, since 6.8] QString QAbstractProtobufSerializer::lastErrorString() const

シリアライザーインスタンスの最後のエラー文字列を返します。

この関数は Qt 6.8 で導入されました。

lastError()も参照してください

QByteArray QAbstractProtobufSerializer::serialize(const QProtobufMessage *message) const

登録された Protobuf メッセージmessageQByteArray にシリアライズします。messagenullptr であってはなりません。

deserialize()も参照

マクロ・ドキュメント

Q_PROTOBUF_OBJECT

QProtobufMessage を継承するクラスで propertyOrdering メンバを宣言します。これは、qtprotobufgen ツールが生成するコードの一部として使用されます。

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