add ChunkStream::getData(int)
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user