add ChunkStream::getData(int)

This commit is contained in:
2024-04-09 18:55:35 +03:00
parent bee9bd12d5
commit c3ba09328b

View File

@@ -99,6 +99,31 @@ public:
return (T)ret;
}
template<typename T>
typename std::enable_if<!std::is_enum<T>::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 T>
typename std::enable_if<std::is_enum<T>::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<T>::type iv;
s >> iv;
ret = (T)iv;
}
return ret;
}
template<typename T>
typename std::enable_if<!std::is_enum<T>::value, const ChunkStream &>::type get(int id, T & v) const {
QByteArray ba = data_map.value(id);