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
template <typename T> QByteArray qSerialize(const T & value) {
template <typename T> QByteArray qSerialize(const T & value, int version = -1) {
QByteArray ret;
QDataStream s(&ret, QIODevice::ReadWrite);
if (version > 0) s.setVersion((QDataStream::Version)version);
s << value;
return ret;
}
template <typename T> T qDeserialize(const QByteArray & data) {
template <typename T> T qDeserialize(const QByteArray & data, int version = -1) {
T ret;
if (!data.isEmpty()) {
QDataStream s(data);
if (version > 0) s.setVersion((QDataStream::Version)version);
s >> ret;
}
return ret;