27class Serializer<QString> {
30 Serializer(
const QString& p_value):value(p_value.toUtf8()) {};
34#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
35 if (data.mv_size >
static_cast<size_t>(std::numeric_limits<qsizetype>::max()))
36 throw std::runtime_error(
"Data size exceeds QByteArray capacity");
38 value = QByteArray(
static_cast<char *
>(data.mv_data),
static_cast<qsizetype
>(data.mv_size));
40 if (data.mv_size >
static_cast<size_t>(std::numeric_limits<int>::max()))
41 throw std::runtime_error(
"Data size exceeds QByteArray capacity");
43 value = QByteArray(
static_cast<char *
>(data.mv_data),
static_cast<int>(data.mv_size));
46 return QString::fromUtf8(value);
48 void deserialize(
const MDB_val& data, QString& result) {
49#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
50 if (data.mv_size >
static_cast<size_t>(std::numeric_limits<qsizetype>::max()))
51 throw std::runtime_error(
"Data size exceeds QByteArray capacity");
53 value = QByteArray(
static_cast<char *
>(data.mv_data),
static_cast<qsizetype
>(data.mv_size));
55 if (data.mv_size >
static_cast<size_t>(std::numeric_limits<int>::max()))
56 throw std::runtime_error(
"Data size exceeds QByteArray capacity");
58 value = QByteArray(
static_cast<char *
>(data.mv_data),
static_cast<int>(data.mv_size));
61 result = QString::fromUtf8(value);
63 MDB_val
setData(
const QString& data) {
64 value = data.toUtf8();
69 result.mv_data = value.data();
70 result.mv_size =
static_cast<size_t>(value.size());
~Serializer()
Destoys the serializer.
Definition serializer.hpp:69
Serializer()
Creates an empty Serializer.
Definition serializer.hpp:40
MDB_val getData()
Returns the data if it already was serialized.
Definition serializer.hpp:153
T deserialize(const MDB_val &value)
Deserializes value.
Definition serializer.hpp:99
void clear()
Clears the state of serializer.
Definition serializer.hpp:137
MDB_val setData(const T &value)
Sets the data to the seriazer.
Definition serializer.hpp:83