QAbstractProtobufSerializer Class
QAbstractProtobufSerializer 클래스는 직렬화/역직렬화를 위한 기본 함수를 나타내는 인터페이스입니다. 더 보기...
Header: | #include <QAbstractProtobufSerializer> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Protobuf) target_link_libraries(mytarget PRIVATE Qt6::Protobuf) |
이후 | Qt 6.5 |
에 의해 상속됨: |
참고: 이 클래스의 모든 함수는 재인용됩니다.
공용 유형
(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 을 상속하여 프로토뷰 메시지를 구현하는 클래스에 대한 직렬화기/역직렬화기를 등록합니다. 이 클래스는 .proto
파일을 기반으로, CMake 함수 qt_add_protobuf를 사용하거나 qtprotobufgen을 직접 실행하여 자동으로 생성됩니다.
이 클래스는 특정 직렬화기의 베이스로 사용해야 합니다. 핸들러 프로퍼티는 모든 메시지별 직렬화기를 포함하며 직렬화/역직렬화 중에 사용해야 합니다. 상속된 클래스는 등록된 메시지 직렬화/역직렬화 함수에서 사용하는 가상 메서드의 범위를 재구현해야 합니다.
멤버 유형 문서
[since 6.8]
enum class QAbstractProtobufSerializer::Error
이 열거형에는 역직렬화 중에 발생할 수 있는 오류가 포함되어 있습니다. 오류가 발생하면 lastErrorString()를 호출하여 사람이 읽을 수 있는 오류 메시지를 표시합니다.
Constant | 값 | 설명 |
---|---|---|
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
QByteArray data 에서 등록된 Protobuf 메시지 message 를 역직렬화합니다. 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 도구에서 생성된 코드의 일부로 사용됩니다.
© 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.