5#include "qx/core/qx_core_export.h"
26 static QByteArray
fromPrimitive(T primitive, QSysInfo::Endian endianness = QSysInfo::ByteOrder)
29 if(endianness == QSysInfo::LittleEndian)
30 primitive = qToLittleEndian(primitive);
32 primitive = qToBigEndian(primitive);
35 return QByteArray(
reinterpret_cast<const char*
>(&primitive),
sizeof(T));
44#if defined __GNUC__ && !defined __clang__
46 inline QByteArray fromPrimitive(
bool primitive, QSysInfo::Endian endianness)
54 return primitive ? QByteArray(1,
'\x01') : QByteArray(1,
'\x00');
59 static T
toPrimitive(QByteArray ba, QSysInfo::Endian endianness = QSysInfo::ByteOrder)
61 if(endianness == QSysInfo::LittleEndian)
63 if(ba.size() <
sizeof(T))
64 ba.append(
sizeof(T) - ba.size(),
'\x00');
65 return qFromLittleEndian<T>(ba);
69 if(ba.size() <
sizeof(T))
70 ba.prepend(
sizeof(T) - ba.size(),
'\x00');
71 return qFromBigEndian<T>(ba);
The ByteArray class is a collection of static functions pertaining to QByteArray.
Definition qx-bytearray.h:21
static T toPrimitive(QByteArray ba, QSysInfo::Endian endianness=QSysInfo::ByteOrder)
Definition qx-bytearray.h:59
static QByteArray fromPrimitive(T primitive, QSysInfo::Endian endianness=QSysInfo::ByteOrder)
Definition qx-bytearray.h:26
Specifies that a type is an arithmetic type.
Definition qx-concepts.h:490
The Qx namespace is the main namespace through which all non-global functionality of the Qx library i...
Definition qx-abstracterror.cpp:13
The qx-concepts header file provides a library of general purpose concepts as an extension of the sta...