21#include "serializer.h"
50 LMDBAL::detail::applyQDataStreamVersion(stream);
51 buffer.open(QIODevice::ReadWrite);
67 LMDBAL::detail::applyQDataStreamVersion(stream);
68 buffer.open(QIODevice::ReadWrite);
77 Serializer<T>::~Serializer() {
128#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
129 if (value.mv_size >
static_cast<size_t>(std::numeric_limits<qsizetype>::max()))
130 throw std::runtime_error(
"Data size exceeds QByteArray capacity");
132 QByteArray array(
static_cast<const char *
>(value.mv_data),
static_cast<qsizetype
>(value.mv_size));
134 if (value.mv_size >
static_cast<size_t>(std::numeric_limits<int>::max()))
135 throw std::runtime_error(
"Data size exceeds QByteArray capacity");
137 QByteArray array(
static_cast<const char *
>(value.mv_data),
static_cast<int>(value.mv_size));
139 QDataStream reader(array);
150void LMDBAL::Serializer<T>::_setData(
const T& value) {
161 stream.setVersion(version);
171 if (buffer.pos() > 0)
188 val.mv_size =
static_cast<size_t>(bytes.size());
189 val.mv_data = bytes.data();
Serializer()
Creates an empty Serializer.
Definition serializer.hpp:45
MDB_val getData()
Returns the data if it already was serialized.
Definition serializer.hpp:185
T deserialize(const MDB_val &value)
Deserializes value.
Definition serializer.hpp:108
void setStreamVersion(QDataStream::Version version)
Sets QDataStream version for serialization.
Definition serializer.hpp:160
void clear()
Clears the state of serializer.
Definition serializer.hpp:170
MDB_val setData(const T &value)
Sets the data to the serializer.
Definition serializer.hpp:92
Destroys a cache.
Definition base.h:36