From c3ba09328b9b90d35fd58e693ac8d96f8f35914b Mon Sep 17 00:00:00 2001 From: peri4 Date: Tue, 9 Apr 2024 18:55:35 +0300 Subject: [PATCH] add ChunkStream::getData(int) --- libs/utils/chunkstream.h | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/libs/utils/chunkstream.h b/libs/utils/chunkstream.h index f330e4b..1f0832b 100644 --- a/libs/utils/chunkstream.h +++ b/libs/utils/chunkstream.h @@ -99,6 +99,31 @@ public: return (T)ret; } + template + typename std::enable_if::value, T>::type getData(int id) const { + T ret{}; + QByteArray ba = data_map.value(id); + if (!ba.isEmpty()) { + QDataStream s(ba); + s.setVersion(QDataStream::Qt_4_8); + s >> ret; + } + return ret; + } + template + typename std::enable_if::value, T>::type getData(int id) const { + T ret{}; + QByteArray ba = data_map.value(id); + if (!ba.isEmpty()) { + QDataStream s(ba); + s.setVersion(QDataStream::Qt_4_8); + typename std::underlying_type::type iv; + s >> iv; + ret = (T)iv; + } + return ret; + } + template typename std::enable_if::value, const ChunkStream &>::type get(int id, T & v) const { QByteArray ba = data_map.value(id);