Definitions of a generic block of bytes. More...
Public Types | |
enum | ByteOrder { BigEndian = QSysInfo::BigEndian, LittleEndian = QSysInfo::LittleEndian } |
Byte order for integer serializing and deserializing. More... | |
typedef QVector< quint8 > | ByteVector |
Type definition for the superclass, a Qt vector of bytes. More... | |
Public Member Functions | |
QtlByteBlock (int size=0, quint8 value=0) | |
Default constructor. More... | |
QtlByteBlock (const ByteVector &other) | |
Copy constructor. More... | |
QtlByteBlock (const void *addr, int size) | |
Constructor from a data block. More... | |
QtlByteBlock (const QByteArray &ba) | |
Constructor from a QByteArray. More... | |
QtlByteBlock (const char *str) | |
Constructor from a C string. More... | |
void | append (const void *addr, int size) |
Append raw data to a byte block. More... | |
void | append (const QtlByteBlock &bb) |
Append a byte block to a byte block. More... | |
void | append (const QByteArray &ba) |
Append a QByteArray to a byte block. More... | |
void | append (int count, quint8 value) |
Append n bytes with value i. More... | |
void | appendInt16 (qint16 i) |
Add an integer in big endian representation at the end. More... | |
void | appendInt16LittleEndian (qint16 i) |
Add an integer in little endian representation at the end. More... | |
void | appendInt32 (qint32 i) |
Add an integer in big endian representation at the end. More... | |
void | appendInt32LittleEndian (qint32 i) |
Add an integer in little endian representation at the end. More... | |
void | appendInt64 (qint64 i) |
Add an integer in big endian representation at the end. More... | |
void | appendInt64LittleEndian (qint64 i) |
Add an integer in little endian representation at the end. More... | |
void | appendInt8 (qint8 i) |
Add an integer in big endian representation at the end. More... | |
void | appendString (const char *str) |
Append a C-string to a byte block. More... | |
template<typename INT > | |
void | appendToBigEndian (INT i) |
Add an integer in big endian representation at the end. More... | |
template<> | |
void | appendToBigEndian (quint8 i) |
Add an integer in big endian representation at the end. More... | |
template<> | |
void | appendToBigEndian (qint8 i) |
Add an integer in big endian representation at the end. More... | |
template<typename INT > | |
void | appendToByteOrder (INT i, ByteOrder order) |
Add an integer in a given byte order at the end. More... | |
template<typename INT > | |
void | appendToLittleEndian (INT i) |
Add an integer in little endian representation at the end. More... | |
template<> | |
void | appendToLittleEndian (quint8 i) |
Add an integer in little endian representation at the end. More... | |
template<> | |
void | appendToLittleEndian (qint8 i) |
Add an integer in little endian representation at the end. More... | |
void | appendUInt16 (quint16 i) |
Add an integer in big endian representation at the end. More... | |
void | appendUInt16LittleEndian (quint16 i) |
Add an integer in little endian representation at the end. More... | |
void | appendUInt32 (quint32 i) |
Add an integer in big endian representation at the end. More... | |
void | appendUInt32LittleEndian (quint32 i) |
Add an integer in little endian representation at the end. More... | |
void | appendUInt64 (quint64 i) |
Add an integer in big endian representation at the end. More... | |
void | appendUInt64LittleEndian (quint64 i) |
Add an integer in little endian representation at the end. More... | |
void | appendUInt8 (quint8 i) |
Add an integer in big endian representation at the end. More... | |
void | copy (const void *addr, int size) |
Replace the content with a data block. More... | |
void * | enlarge (int n) |
Increase size by n and return pointer to new n-byte area at end of block. More... | |
void * | enlargeFrom (int index, int n) |
Make sure there are at bytes available at the specified index. More... | |
template<typename INT > | |
bool | fromBigEndian (int &index, INT &i) const |
Get an integer in big endian representation at a given position. More... | |
template<typename INT > | |
INT | fromBigEndian (int index) const |
Get an integer in big endian representation at a given position. More... | |
template<typename INT > | |
bool | fromByteOrder (int &index, INT &i, ByteOrder order) const |
Get an integer in a given byte order at a given position. More... | |
template<typename INT > | |
INT | fromByteOrder (int index, ByteOrder order) const |
Get an integer in a given byte order at a given position. More... | |
template<typename INT > | |
bool | fromLittleEndian (int &index, INT &i) const |
Get an integer in little endian representation at a given position. More... | |
template<typename INT > | |
INT | fromLittleEndian (int index) const |
Get an integer in little endian representation at a given position. More... | |
bool | getLatin1 (int &index, int stringSize, QString &s) const |
Get a Latin-1 string at a given position. More... | |
QString | getLatin1 (int index, int stringSize) const |
Get a Latin1 string at a given position. More... | |
bool | getUtf8 (int &index, int stringSize, QString &s) const |
Get an UTF-8 string at a given position. More... | |
QString | getUtf8 (int index, int stringSize) const |
Get an UTF-8 string at a given position. More... | |
void | storeInt16 (int index, qint16 i) |
Store an integer in big endian representation at a given index. More... | |
void | storeInt16LittleEndian (int index, qint16 i) |
Store an integer in little endian representation at a given index. More... | |
void | storeInt32 (int index, qint32 i) |
Store an integer in big endian representation at a given index. More... | |
void | storeInt32LittleEndian (int index, qint32 i) |
Store an integer in little endian representation at a given index. More... | |
void | storeInt64 (int index, qint64 i) |
Store an integer in big endian representation at a given index. More... | |
void | storeInt64LittleEndian (int index, qint64 i) |
Store an integer in little endian representation at a given index. More... | |
void | storeInt8 (int index, qint8 i) |
Store an integer in big endian representation at a given index. More... | |
template<typename INT > | |
void | storeToBigEndian (int index, INT i) |
Store an integer in big endian representation at a given index. More... | |
template<typename INT > | |
void | storeToByteOrder (int index, INT i, ByteOrder order) |
Store an integer in a given byte order at a given index. More... | |
template<typename INT > | |
void | storeToLittleEndian (int index, INT i) |
Store an integer in little endian representation at a given index. More... | |
void | storeUInt16 (int index, quint16 i) |
Store an integer in big endian representation at a given index. More... | |
void | storeUInt16LittleEndian (int index, quint16 i) |
Store an integer in little endian representation at a given index. More... | |
void | storeUInt32 (int index, quint32 i) |
Store an integer in big endian representation at a given index. More... | |
void | storeUInt32LittleEndian (int index, quint32 i) |
Store an integer in little endian representation at a given index. More... | |
void | storeUInt64 (int index, quint64 i) |
Store an integer in big endian representation at a given index. More... | |
void | storeUInt64LittleEndian (int index, quint64 i) |
Store an integer in little endian representation at a given index. More... | |
void | storeUInt8 (int index, quint8 i) |
Store an integer in big endian representation at a given index. More... | |
QByteArray | toByteArray () const |
Convert a QtlByteBlock into a QByteArray. More... | |
Definitions of a generic block of bytes.
typedef QVector<quint8> QtlByteBlock::ByteVector |
Type definition for the superclass, a Qt vector of bytes.
|
inlineexplicit |
Default constructor.
[in] | size | Size of the byte block. |
[in] | value | Value to assign to each byte. |
|
inline |
Copy constructor.
[in] | other | Other instance to copy. |
|
inline |
Constructor from a data block.
[in] | addr | Address of the data block. |
[in] | size | Size of the data block. |
|
inline |
Constructor from a QByteArray.
[in] | ba | Byte array to copy. |
|
inline |
Constructor from a C string.
[in] | str | A nul-terminated string. |
|
inline |
Convert a QtlByteBlock into a QByteArray.
void QtlByteBlock::copy | ( | const void * | addr, |
int | size | ||
) |
Replace the content with a data block.
[in] | addr | Address of the data block. |
[in] | size | Size of the data block. |
void * QtlByteBlock::enlarge | ( | int | n | ) |
Increase size by n and return pointer to new n-byte area at end of block.
[in] | n | Number of bytes to add. |
void * QtlByteBlock::enlargeFrom | ( | int | index, |
int | n | ||
) |
Make sure there are at
bytes available at the specified index.
The byte block is enlarged if necessary.
[in] | index | Index of area. If negative, append at end of data block. |
[in] | n | Number of bytes to make available. |
void QtlByteBlock::append | ( | const void * | addr, |
int | size | ||
) |
Append raw data to a byte block.
[in] | addr | Address of the data block. |
[in] | size | Size of the data block. |
|
inline |
Append a byte block to a byte block.
[in] | bb | Byte block to append. |
|
inline |
Append a C-string to a byte block.
[in] | str | A nul-terminated string. |
|
inline |
Append a QByteArray to a byte block.
[in] | ba | Byte array to append. |
|
inline |
Append n bytes with value i.
[in] | count | Number of bytes to add. |
[in] | value | Value to assign to each byte. |
|
inline |
Add an integer in big endian representation at the end.
[in] | i | Integer value to append. |
|
inline |
Add an integer in big endian representation at the end.
[in] | i | Integer value to append. |
|
inline |
Add an integer in big endian representation at the end.
[in] | i | Integer value to append. |
|
inline |
Add an integer in big endian representation at the end.
[in] | i | Integer value to append. |
|
inline |
Add an integer in big endian representation at the end.
[in] | i | Integer value to append. |
|
inline |
Add an integer in big endian representation at the end.
[in] | i | Integer value to append. |
|
inline |
Add an integer in big endian representation at the end.
[in] | i | Integer value to append. |
|
inline |
Add an integer in big endian representation at the end.
[in] | i | Integer value to append. |
|
inline |
Add an integer in big endian representation at the end.
Template variant
INT | An integer type. |
[in] | i | Integer value to append. |
|
inline |
Store an integer in big endian representation at a given index.
The byte block is enlarged if necessary.
[in] | index | Index where to store the integer. If negative, append at end of data block. |
[in] | i | Integer value to append. |
|
inline |
Store an integer in big endian representation at a given index.
The byte block is enlarged if necessary.
[in] | index | Index where to store the integer. If negative, append at end of data block. |
[in] | i | Integer value to append. |
|
inline |
Store an integer in big endian representation at a given index.
The byte block is enlarged if necessary.
[in] | index | Index where to store the integer. If negative, append at end of data block. |
[in] | i | Integer value to append. |
|
inline |
Store an integer in big endian representation at a given index.
The byte block is enlarged if necessary.
[in] | index | Index where to store the integer. If negative, append at end of data block. |
[in] | i | Integer value to append. |
|
inline |
Store an integer in big endian representation at a given index.
The byte block is enlarged if necessary.
[in] | index | Index where to store the integer. If negative, append at end of data block. |
[in] | i | Integer value to append. |
|
inline |
Store an integer in big endian representation at a given index.
The byte block is enlarged if necessary.
[in] | index | Index where to store the integer. If negative, append at end of data block. |
[in] | i | Integer value to append. |
|
inline |
Store an integer in big endian representation at a given index.
The byte block is enlarged if necessary.
[in] | index | Index where to store the integer. If negative, append at end of data block. |
[in] | i | Integer value to append. |
|
inline |
Store an integer in big endian representation at a given index.
The byte block is enlarged if necessary.
[in] | index | Index where to store the integer. If negative, append at end of data block. |
[in] | i | Integer value to append. |
|
inline |
Store an integer in big endian representation at a given index.
The byte block is enlarged if necessary. Template variant
INT | An integer type. |
[in] | index | Index where to store the integer. If negative, append at end of data block. |
[in] | i | Integer value to append. |
|
inline |
Add an integer in little endian representation at the end.
[in] | i | Integer value to append. |
|
inline |
Add an integer in little endian representation at the end.
[in] | i | Integer value to append. |
|
inline |
Add an integer in little endian representation at the end.
[in] | i | Integer value to append. |
|
inline |
Add an integer in little endian representation at the end.
[in] | i | Integer value to append. |
|
inline |
Add an integer in little endian representation at the end.
[in] | i | Integer value to append. |
|
inline |
Add an integer in little endian representation at the end.
[in] | i | Integer value to append. |
|
inline |
Add an integer in little endian representation at the end.
Template variant
INT | An integer type. |
[in] | i | Integer value to append. |
|
inline |
Store an integer in little endian representation at a given index.
The byte block is enlarged if necessary.
[in] | index | Index where to store the integer. If negative, append at end of data block. |
[in] | i | Integer value to append. |
|
inline |
Store an integer in little endian representation at a given index.
The byte block is enlarged if necessary.
[in] | index | Index where to store the integer. If negative, append at end of data block. |
[in] | i | Integer value to append. |
|
inline |
Store an integer in little endian representation at a given index.
The byte block is enlarged if necessary.
[in] | index | Index where to store the integer. If negative, append at end of data block. |
[in] | i | Integer value to append. |
|
inline |
Store an integer in little endian representation at a given index.
The byte block is enlarged if necessary.
[in] | index | Index where to store the integer. If negative, append at end of data block. |
[in] | i | Integer value to append. |
|
inline |
Store an integer in little endian representation at a given index.
The byte block is enlarged if necessary.
[in] | index | Index where to store the integer. If negative, append at end of data block. |
[in] | i | Integer value to append. |
|
inline |
Store an integer in little endian representation at a given index.
The byte block is enlarged if necessary.
[in] | index | Index where to store the integer. If negative, append at end of data block. |
[in] | i | Integer value to append. |
|
inline |
Store an integer in little endian representation at a given index.
The byte block is enlarged if necessary. Template variant
INT | An integer type. |
[in] | index | Index where to store the integer. If negative, append at end of data block. |
[in] | i | Integer value to append. |
|
inline |
Add an integer in a given byte order at the end.
INT | An integer type. |
[in] | i | Integer value to append. |
[in] | order | The byte order to serialize i. |
|
inline |
Store an integer in a given byte order at a given index.
The byte block is enlarged if necessary.
INT | An integer type. |
[in] | index | Index where to store the integer. If negative, append at end of data block. |
[in] | i | Integer value to append. |
[in] | order | The byte order to serialize i. |
bool QtlByteBlock::getUtf8 | ( | int & | index, |
int | stringSize, | ||
QString & | s | ||
) | const |
Get an UTF-8 string at a given position.
[in,out] | index | Index in the byte block where to read the data. If the data is correctly read, index is updated to point after the read data. |
[in] | stringSize | Requested string size in bytes. |
[out] | s | Returned string. |
QString QtlByteBlock::getUtf8 | ( | int | index, |
int | stringSize | ||
) | const |
Get an UTF-8 string at a given position.
[in] | index | Index in the byte block where to read the data. |
[in] | stringSize | Requested string size in bytes. |
bool QtlByteBlock::getLatin1 | ( | int & | index, |
int | stringSize, | ||
QString & | s | ||
) | const |
Get a Latin-1 string at a given position.
[in,out] | index | Index in the byte block where to read the data. If the data is correctly read, index is updated to point after the read data. |
[in] | stringSize | Requested string size in bytes. |
[out] | s | Returned string. |
QString QtlByteBlock::getLatin1 | ( | int | index, |
int | stringSize | ||
) | const |
Get a Latin1 string at a given position.
[in] | index | Index in the byte block where to read the data. |
[in] | stringSize | Requested string size in bytes. |
|
inline |
Get an integer in big endian representation at a given position.
[in,out] | index | Index in the byte block where to read the data. If the data is correctly read, index is updated to point after the read data. |
[out] | i | Returned integer value. |
|
inline |
Get an integer in big endian representation at a given position.
[in] | index | Index in the byte block where to read the data. |
|
inline |
Get an integer in little endian representation at a given position.
[in,out] | index | Index in the byte block where to read the data. If the data is correctly read, index is updated to point after the read data. |
[out] | i | Returned integer value. |
|
inline |
Get an integer in little endian representation at a given position.
[in] | index | Index in the byte block where to read the data. |
|
inline |
Get an integer in a given byte order at a given position.
[in,out] | index | Index in the byte block where to read the data. If the data is correctly read, index is updated to point after the read data. |
[out] | i | Returned integer value. |
[in] | order | The byte order to deserialize i. |
|
inline |
Get an integer in a given byte order at a given position.
[in] | index | Index in the byte block where to read the data. |
[in] | order | The byte order to deserialize the integer. |
|
inline |
Add an integer in big endian representation at the end.
Template specializations for performance
[in] | i | Integer value to append. |
|
inline |
Add an integer in big endian representation at the end.
Template specializations for performance
[in] | i | Integer value to append. |
|
inline |
Add an integer in little endian representation at the end.
Template specializations for performance
[in] | i | Integer value to append. |
|
inline |
Add an integer in little endian representation at the end.
Template specializations for performance
[in] | i | Integer value to append. |