qSerialize/qDeserialize now with optional version

This commit is contained in:
2022-11-12 13:11:06 +03:00
parent 749f967a15
commit c893754ce3

View File

@@ -360,17 +360,19 @@ BINARY_STREAM_READ (QImage) {
/// pure Qt /// pure Qt
template <typename T> QByteArray qSerialize(const T & value) { template <typename T> QByteArray qSerialize(const T & value, int version = -1) {
QByteArray ret; QByteArray ret;
QDataStream s(&ret, QIODevice::ReadWrite); QDataStream s(&ret, QIODevice::ReadWrite);
if (version > 0) s.setVersion((QDataStream::Version)version);
s << value; s << value;
return ret; return ret;
} }
template <typename T> T qDeserialize(const QByteArray & data) { template <typename T> T qDeserialize(const QByteArray & data, int version = -1) {
T ret; T ret;
if (!data.isEmpty()) { if (!data.isEmpty()) {
QDataStream s(data); QDataStream s(data);
if (version > 0) s.setVersion((QDataStream::Version)version);
s >> ret; s >> ret;
} }
return ret; return ret;