add ChunkStream::getData(int)
This commit is contained in:
@@ -99,6 +99,31 @@ public:
|
|||||||
return (T)ret;
|
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>
|
template<typename T>
|
||||||
typename std::enable_if<!std::is_enum<T>::value, const ChunkStream &>::type get(int id, T & v) const {
|
typename std::enable_if<!std::is_enum<T>::value, const ChunkStream &>::type get(int id, T & v) const {
|
||||||
QByteArray ba = data_map.value(id);
|
QByteArray ba = data_map.value(id);
|
||||||
|
|||||||
Reference in New Issue
Block a user