28 template<
typename T>
static QByteArray
readByteArray(
const QByteArray& pInput,
int& pOffset)
30 Q_ASSERT(
sizeof(
T) < INT_MAX);
32 const auto typeLength =
static_cast<int>(
sizeof(
T));
33 if (pInput.size() < pOffset + typeLength)
38 const T length = qFromLittleEndian<T>(pInput.data() + pOffset);
39 pOffset += typeLength;
40 const QByteArray result = pInput.mid(pOffset, length);
46 template<
typename T>
static void writeByteArray(
const QByteArray& pValue, QByteArray& pOutput)
48 Q_ASSERT(
sizeof(
T) < INT_MAX);
50 const int maxSize = std::numeric_limits<T>::max();
51 const int size = std::min(maxSize,
static_cast<int>(pValue.size()));
53 const auto it = pOutput.size();
54 pOutput.resize(it +
static_cast<int>(
sizeof(
T)));
55 qToLittleEndian(
static_cast<T>(size), pOutput.data() + it);
56 pOutput += pValue.mid(0, size);
Definition LengthValue.h:22
static QByteArray readByteArray(const QByteArray &pInput, int &pOffset)
Definition LengthValue.h:28
static void writeByteArray(const QByteArray &pValue, QByteArray &pOutput)
Definition LengthValue.h:46
#define T(v)
Definition http_parser.cpp:237
Implementation of GeneralAuthenticate response APDUs.
Definition CommandApdu.h:17