En esta página

QAbstractProtobufSerializer Class

La clase QAbstractProtobufSerializer es una interfaz que representa funciones básicas de serialización/deserialización. Más...

Cabecera: #include <QAbstractProtobufSerializer>
CMake: find_package(Qt6 REQUIRED COMPONENTS Protobuf)
target_link_libraries(mytarget PRIVATE Qt6::Protobuf)
Desde: Qt 6.5
Heredado por:

QProtobufJsonSerializer y QProtobufSerializer

Nota: Todas las funciones de esta clase son reentrantes.

Tipos Públicos

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

Funciones Públicas

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

Funciones Privadas

virtual bool deserializeMessage(QProtobufMessage *message, QByteArrayView data) const = 0
virtual QByteArray serializeMessage(const QProtobufMessage *message) const = 0

Macros

Descripción detallada

La clase QProtobufSerializer registra serializadores/deserializadores para clases que implementan un mensaje protobuf, heredando QProtobufMessage. Estas clases se generan automáticamente, basándose en un fichero .proto, utilizando la función de CMake qt_add_protobuf o ejecutando qtprotobufgen directamente.

Esta clase debe utilizarse como base para serializadores específicos. La propiedad handlers contiene todos los serializadores específicos de mensajes y debe utilizarse durante la serialización/deserialización. Las clases heredadas deben reimplementar el alcance de los métodos virtuales que utilizan las funciones de serialización/deserialización de mensajes registradas.

Documentación de tipos de miembros

[since 6.8] enum class QAbstractProtobufSerializer::Error

Este enum contiene posibles errores que pueden ocurrir durante la deserialización. Cuando se produce un error, llame a lastErrorString() para obtener un mensaje de error legible por humanos.

ConstanteValorDescripción
QAbstractProtobufSerializer::Error::None0No se ha producido ningún error.
QAbstractProtobufSerializer::Error::InvalidHeader1Algo ha ido mal al intentar descodificar una cabecera del mensaje.
QAbstractProtobufSerializer::Error::UnknownType2Al serializar o deserializar un mensaje, no se ha encontrado ningún deserializador para un campo del mensaje.
QAbstractProtobufSerializer::Error::UnexpectedEndOfStream3Al deserializar un mensaje, el flujo finalizó inesperadamente.
QAbstractProtobufSerializer::Error::InvalidFormat4Los datos tienen un formato no válido. Por ejemplo, el valor JSON no coincide con el tipo de campo.

Este enum se introdujo en Qt 6.8.

Documentación de las funciones miembro

[virtual noexcept] QAbstractProtobufSerializer::~QAbstractProtobufSerializer()

Destruye este QAbstractProtobufSerializer.

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

Deserializa un mensaje Protobuf registrado message a partir de un QByteArray data . message no debe ser nullptr. Devuelve true si la deserialización se ha realizado correctamente, en caso contrario false.

Las propiedades inesperadas/desconocidas en data se omiten.

Véase también serialize().

[pure virtual private] bool QAbstractProtobufSerializer::deserializeMessage(QProtobufMessage *message, QByteArrayView data) const

Esto es llamado por deserialize() para deserializar un Protobuf registrado message de un QByteArrayView data . Se puede asumir que message no es nullptr. Devuelve true si la deserialización se ha realizado correctamente, en caso contrario false.

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

Devuelve el último error de la instancia del serializador.

Esta función se introdujo en Qt 6.8.

Véase también lastErrorString().

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

Devuelve la última cadena de error para la instancia del serializador.

Esta función se introdujo en Qt 6.8.

Véase también lastError().

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

Serializa un mensaje Protobuf registrado message en un QByteArray. message no debe ser nullptr.

Véase también deserialize().

[pure virtual private] QByteArray QAbstractProtobufSerializer::serializeMessage(const QProtobufMessage *message) const

Es llamada por serialize() para serializar un Protobuf registrado message. message no debe ser nullptr. Devuelve un QByteArray que contiene el mensaje serializado.

Documentación de macros

Q_PROTOBUF_OBJECT

Declara el miembro propertyOrdering en una clase que hereda de QProtobufMessage. Se utiliza como parte del código generado por la herramienta qtprotobufgen.

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