26 template<
typename T>
static QByteArray
readByteArray(
const QByteArray& pInput,
int& pOffset)
28 Q_ASSERT(
sizeof(
T) < INT_MAX);
30 const auto typeLength =
static_cast<int>(
sizeof(
T));
31 if (pInput.size() < pOffset + typeLength)
36 const T length = qFromLittleEndian<T>(pInput.data() + pOffset);
37 pOffset += typeLength;
38 const QByteArray result = pInput.mid(pOffset, length);
44 template<
typename T>
static void writeByteArray(
const QByteArray& pValue, QByteArray& pOutput)
46 Q_ASSERT(
sizeof(
T) < INT_MAX);
48 const int maxSize = std::numeric_limits<T>::max();
49 #if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))
50 const int size = std::min(maxSize, pValue.size());
52 const int size = std::min(maxSize,
static_cast<int>(pValue.size()));
55 const auto it = pOutput.size();
56 pOutput.resize(it +
static_cast<int>(
sizeof(
T)));
57 qToLittleEndian(
static_cast<T>(size), pOutput.data() + it);
58 pOutput += pValue.mid(0, size);
Definition: LengthValue.h:20
static QByteArray readByteArray(const QByteArray &pInput, int &pOffset)
Definition: LengthValue.h:26
static void writeByteArray(const QByteArray &pValue, QByteArray &pOutput)
Definition: LengthValue.h:44
#define T(v)
Definition: http_parser.cpp:237
A simple template renderer.
Definition: ActivationContext.h:15