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: |
注意:このクラスの関数はすべてリエントラントです。
パブリック型
(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::None | 0 | エラーは発生しませんでした。 |
QAbstractProtobufSerializer::Error::InvalidHeader | 1 | メッセージのヘッダをデコードしようとして、何か問題が発生しました。 |
QAbstractProtobufSerializer::Error::UnknownType | 2 | メッセージのシリアライズまたはデシリアライズ中に、メッセージ・フィールドに対応するデシリアライザが見つかりませんでした。 |
QAbstractProtobufSerializer::Error::UnexpectedEndOfStream | 3 | メッセージのデシリアライズ中に、ストリームが予期せず終了しました。 |
QAbstractProtobufSerializer::Error::InvalidFormat | 4 | データの形式が無効です。例えば、JSON 値がフィールド・タイプと一致しません。 |
この列挙型は Qt 6.8 で導入されました。
メンバ関数 ドキュメント
[virtual noexcept]
QAbstractProtobufSerializer::~QAbstractProtobufSerializer()
このQAbstractProtobufSerializer を破棄します。
bool QAbstractProtobufSerializer::deserialize(QProtobufMessage *message, QByteArrayView data) const
登録された Protobuf メッセージmessage をQByteArray data からデシリアライズします。message はnullptr
であってはなりません。デシリアライズが成功した場合は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 メッセージmessage をQByteArray にシリアライズします。message はnullptr
であってはなりません。
deserialize()も参照して ください。
マクロ・ドキュメント
Q_PROTOBUF_OBJECT
QProtobufMessage を継承するクラスで propertyOrdering メンバを宣言します。これは qtprotobufgen ツールが生成するコードの一部として使用されます。
本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。