12 #ifndef hifi_ExtendedIODevice_h
13 #define hifi_ExtendedIODevice_h
15 #include <QtCore/QIODevice>
17 class ExtendedIODevice :
public QIODevice {
19 ExtendedIODevice(QObject* parent =
nullptr) : QIODevice(parent) {};
21 template<
typename T> qint64 peekPrimitive(T* data);
22 template<
typename T> qint64 readPrimitive(T* data);
23 template<
typename T> qint64 writePrimitive(
const T& data);
26 template<
typename T> qint64 ExtendedIODevice::peekPrimitive(T* data) {
27 return peek(
reinterpret_cast<char*
>(data),
sizeof(T));
30 template<
typename T> qint64 ExtendedIODevice::readPrimitive(T* data) {
31 return read(
reinterpret_cast<char*
>(data),
sizeof(T));
34 template<
typename T> qint64 ExtendedIODevice::writePrimitive(
const T& data) {
35 static_assert(!std::is_pointer<T>::value,
"T must not be a pointer");
36 return write(
reinterpret_cast<const char*
>(&data),
sizeof(T));