QProtobufMessage Class
Clase base para todos los mensajes protobuf. Más...
| Cabecera: | #include <QProtobufMessage> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Protobuf)target_link_libraries(mytarget PRIVATE Qt6::Protobuf) |
| Desde: | Qt 6.5 |
| Heredado por: |
Funciones Públicas
(since 6.8) bool | deserialize(QAbstractProtobufSerializer *serializer, QByteArrayView data) |
| QVariant | property(QAnyStringView propertyName) const |
(since 6.8) const QtProtobufPrivate::QProtobufPropertyOrdering * | propertyOrdering() const |
(since 6.8) QByteArray | serialize(QAbstractProtobufSerializer *serializer) const |
| bool | setProperty(QAnyStringView propertyName, const QVariant &value) |
(since 6.6) bool | setProperty(QAnyStringView propertyName, QVariant &&value) |
(since 6.7) QList<QByteArray> | unknownFieldData(qint32 field) const |
(since 6.7) QList<qint32> | unknownFieldNumbers() const |
Miembros públicos estáticos
| QProtobufMessagePointer | constructByName(const QString &messageType) |
No miembros relacionados
| QProtobufMessagePointer | |
(since 6.11) To | qprotobufmessage_cast(QProtobufMessage *from) |
(since 6.11) To | qprotobufmessage_cast(const QProtobufMessage *from) |
Descripción detallada
Proporciona acceso a las propiedades de un mensaje, utilizando setProperty() y property(), sin depender de lo que sea el mensaje.
Documentación de las funciones miembro
[static] QProtobufMessagePointer QProtobufMessage::constructByName(const QString &messageType)
Construye QProtobufMessage utilizando messageType. Devuelve un puntero al mensaje construido QProtobufMessage.
Esta función intenta crear un mensaje con un tipo que coincida con messageType. Si messageType es desconocido, la función devuelve nullptr. Si el mensaje no se encuentra en el registro, la función devuelve nullptr. La persona que llama a la función recibe la propiedad del mensaje construido.
[since 6.8] bool QProtobufMessage::deserialize(QAbstractProtobufSerializer *serializer, QByteArrayView data)
Deserializa este mensaje protobuf desde un QByteArray data utilizando serializer. Devuelve true si la deserialización se ha realizado correctamente, en caso contrario false.
Esta función se introdujo en Qt 6.8.
Véase también serialize().
QVariant QProtobufMessage::property(QAnyStringView propertyName) const
Obtiene el valor de la propiedad propertyName.
Si el propertyName no es conocido entonces el QVariant devuelto no es válido.
Véase también setProperty().
[since 6.8] const QtProtobufPrivate::QProtobufPropertyOrdering *QProtobufMessage::propertyOrdering() const
Devuelve el puntero a la ordenación de propiedades del mensaje protobuf derivado.
Esta función se introdujo en Qt 6.8.
[since 6.8] QByteArray QProtobufMessage::serialize(QAbstractProtobufSerializer *serializer) const
Serializa este mensaje protobuf en un QByteArray usando serializer.
Esta función se introdujo en Qt 6.8.
Véase también deserialize().
bool QProtobufMessage::setProperty(QAnyStringView propertyName, const QVariant &value)
Establece la propiedad propertyName al valor almacenado en value.
Si propertyName no es un campo conocido, se ignora el valor y la función devuelve false.
Devuelve false si no consigue almacenar el value en la propiedad. En caso contrario true.
Véase también property().
[since 6.6] bool QProtobufMessage::setProperty(QAnyStringView propertyName, QVariant &&value)
Esta es una función sobrecargada.
Esta función se introdujo en Qt 6.6.
[since 6.7] QList<QByteArray> QProtobufMessage::unknownFieldData(qint32 field) const
Devuelve los valores desconocidos de field ordenados como se recibieron del cable.
Esta función se introdujo en Qt 6.7.
[since 6.7] QList<qint32> QProtobufMessage::unknownFieldNumbers() const
Devuelve los números de campo que no eran conocidos por QtProtobuf durante la deserialización.
Esta función se introdujo en Qt 6.7.
No miembros relacionados
[alias] QProtobufMessagePointer
Sinónimo de std::unique_ptr<QProtobufMessage, QProtobufMessageDeleter>. Se utiliza para gestionar el tiempo de vida de QProtobufMessages asignados dinámicamente, como los creados al llamar a QProtobufMessage::constructByName.
[since 6.11] template <typename To> To qprotobufmessage_cast(QProtobufMessage *from)
[since 6.11] template <typename To> To qprotobufmessage_cast(const QProtobufMessage *from)
Devuelve el objeto from dado convertido al tipo de puntero To si el objeto es del tipo To (o una subclase); en caso contrario devuelve nullptr. Si from es nullptr, esta función también devuelve nullptr.
El argumento de plantilla To debe ser un puntero a una clase que herede de QProtobufMessage y esté declarada con la macro Q_PROTOBUF_OBJECT.
Ejemplo:
QProtobufMessage *message = new myproject::MySpecificMessage(); // Cast to its own type (success) auto *specific = qprotobufmessage_cast<myproject::MySpecificMessage *>(message); // specific is a valid pointer // Cast to an unrelated type (failure) auto *another = qprotobufmessage_cast<myproject::AnotherMessage *>(message); // another is nullptr
Esta función se comporta de forma similar a la estándar de C++ dynamic_cast(), con las ventajas de que no requiere soporte RTTI y funciona a través de los límites de las bibliotecas dinámicas.
Advertencia: Si el tipo apuntado por To no se declara con la macro Q_PROTOBUF_OBJECT, el valor de retorno de esta función es indefinido.
Estas funciones se introdujeron en Qt 6.11.
© 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.