QAbstractProtobufSerializer Class

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

Header: #include <QAbstractProtobufSerializer>
CMake: find_package(Qt6 REQUIRED COMPONENTS Protobuf)
target_link_libraries(mytarget PRIVATE Qt6::Protobuf)
Since: Qt 6.5
Inherited By:

QProtobufJsonSerializer and 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 ツールが生成するコードの一部として使用されます。

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