cborserializer_p.h 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. #ifndef QTJSONSERIALIZER_CBORSERIALIZER_P_H
  2. #define QTJSONSERIALIZER_CBORSERIALIZER_P_H
  3. #include "cborserializer.h"
  4. #include "serializerbase_p.h"
  5. #include <optional>
  6. #include <QtCore/QHash>
  7. #include <QtCore/QLoggingCategory>
  8. namespace QtJsonSerializer {
  9. class Q_JSONSERIALIZER_EXPORT CborSerializerPrivate : public SerializerBasePrivate
  10. {
  11. Q_DECLARE_PUBLIC(CborSerializer)
  12. public:
  13. using ExtendedTags = CborSerializer::ExtendedTags;
  14. using CustomTags = CborSerializer::CustomTags;
  15. mutable QReadWriteLock typeTagsLock {};
  16. QHash<int, QCborTag> typeTags {};
  17. bool handleSpecialNumbers = false;
  18. QVariant deserializeCborValue(int propertyType, const QCborValue &value) const override;
  19. QVariant deserializePositiveBignum(const QByteArray &data) const;
  20. QVariant deserializeNegativeBignum(const QByteArray &data) const;
  21. qreal deserializeDecimal(const QCborArray &data) const;
  22. qreal deserializeBigfloat(const QCborArray &data) const;
  23. qreal deserializeRationaleNumber(const QCborArray &data) const;
  24. };
  25. Q_DECLARE_LOGGING_CATEGORY(logCbor)
  26. }
  27. #endif // QTJSONSERIALIZER_CBORSERIALIZER_P_H