QtCore/qendian.h File Reference

qendian.h File Reference
#include <QtCore/qglobal.h>
#include <stdlib.h>

Functions

QT_BEGIN_HEADER QT_BEGIN_NAMESPACE void qbswap_helper (const uchar *src, uchar *dest, int size)
 
template<typename T >
void qbswap (const T src, uchar *dest)
 
template<typename T >
void qToUnaligned (const T src, uchar *dest)
 
template<typename T >
qFromLittleEndian (const uchar *src)
 
template<>
quint64 qFromLittleEndian< quint64 > (const uchar *src)
 
template<>
quint32 qFromLittleEndian< quint32 > (const uchar *src)
 
template<>
quint16 qFromLittleEndian< quint16 > (const uchar *src)
 
template<>
qint64 qFromLittleEndian< qint64 > (const uchar *src)
 
template<>
qint32 qFromLittleEndian< qint32 > (const uchar *src)
 
template<>
qint16 qFromLittleEndian< qint16 > (const uchar *src)
 
template<class T >
qFromBigEndian (const uchar *src)
 
template<>
quint64 qFromBigEndian< quint64 > (const uchar *src)
 
template<>
quint32 qFromBigEndian< quint32 > (const uchar *src)
 
template<>
quint16 qFromBigEndian< quint16 > (const uchar *src)
 
template<>
qint64 qFromBigEndian< qint64 > (const uchar *src)
 
template<>
qint32 qFromBigEndian< qint32 > (const uchar *src)
 
template<>
qint16 qFromBigEndian< qint16 > (const uchar *src)
 
template<typename T >
qbswap (T source)
 
template<>
quint64 qbswap< quint64 > (quint64 source)
 
template<>
quint32 qbswap< quint32 > (quint32 source)
 
template<>
quint16 qbswap< quint16 > (quint16 source)
 
template<>
qint64 qbswap< qint64 > (qint64 source)
 
template<>
qint32 qbswap< qint32 > (qint32 source)
 
template<>
qint16 qbswap< qint16 > (qint16 source)
 
template<typename T >
qToBigEndian (T source)
 
template<typename T >
qFromBigEndian (T source)
 
template<typename T >
qToLittleEndian (T source)
 
template<typename T >
qFromLittleEndian (T source)
 
template<typename T >
void qToBigEndian (T src, uchar *dest)
 
template<typename T >
void qToLittleEndian (T src, uchar *dest)
 
template<>
quint8 qbswap< quint8 > (quint8 source)
 

Function Documentation

QT_BEGIN_HEADER QT_BEGIN_NAMESPACE void qbswap_helper ( const uchar *  src,
uchar *  dest,
int  size 
)
inline

Definition at line 63 of file qendian.h.

64 {
65  for (int i = 0; i < size ; ++i) dest[i] = src[size - 1 - i];
66 }
GLuint src
Definition: GLee.h:7190
GLsizeiptr size
Definition: GLee.h:1561
void qbswap ( const T  src,
uchar *  dest 
)
inline

Definition at line 74 of file qendian.h.

75 {
76  qbswap_helper(reinterpret_cast<const uchar *>(&src), dest, sizeof(T));
77 }
GLuint src
Definition: GLee.h:7190
QT_BEGIN_HEADER QT_BEGIN_NAMESPACE void qbswap_helper(const uchar *src, uchar *dest, int size)
Definition: qendian.h:63
void qToUnaligned ( const T  src,
uchar *  dest 
)
inline

Definition at line 81 of file qendian.h.

82 {
83  qMemCopy(dest, &src, sizeof(T));
84 }
GLuint src
Definition: GLee.h:7190
T qFromLittleEndian ( const uchar *  src)
inline
quint64 qFromLittleEndian< quint64 > ( const uchar *  src)
inline

Definition at line 135 of file qendian.h.

136 {
137  return 0
138  | src[0]
139  | src[1] * Q_UINT64_C(0x0000000000000100)
140  | src[2] * Q_UINT64_C(0x0000000000010000)
141  | src[3] * Q_UINT64_C(0x0000000001000000)
142  | src[4] * Q_UINT64_C(0x0000000100000000)
143  | src[5] * Q_UINT64_C(0x0000010000000000)
144  | src[6] * Q_UINT64_C(0x0001000000000000)
145  | src[7] * Q_UINT64_C(0x0100000000000000);
146 }
GLuint src
Definition: GLee.h:7190
#define Q_UINT64_C(c)
Definition: qglobal.h:946
quint32 qFromLittleEndian< quint32 > ( const uchar *  src)
inline

Definition at line 148 of file qendian.h.

149 {
150  return 0
151  | src[0]
152  | src[1] * quint32(0x00000100)
153  | src[2] * quint32(0x00010000)
154  | src[3] * quint32(0x01000000);
155 }
GLuint src
Definition: GLee.h:7190
unsigned int quint32
Definition: qglobal.h:938
quint16 qFromLittleEndian< quint16 > ( const uchar *  src)
inline

Definition at line 157 of file qendian.h.

158 {
159  return quint16(0
160  | src[0]
161  | src[1] * 0x0100);
162 }
GLuint src
Definition: GLee.h:7190
unsigned short quint16
Definition: qglobal.h:936
qint64 qFromLittleEndian< qint64 > ( const uchar *  src)
inline

Definition at line 165 of file qendian.h.

166 { return static_cast<qint64>(qFromLittleEndian<quint64>(src)); }
quint64 qFromLittleEndian< quint64 >(const uchar *src)
Definition: qendian.h:135
GLuint src
Definition: GLee.h:7190
long long qint64
Definition: qglobal.h:947
qint32 qFromLittleEndian< qint32 > ( const uchar *  src)
inline

Definition at line 168 of file qendian.h.

169 { return static_cast<qint32>(qFromLittleEndian<quint32>(src)); }
int qint32
Definition: qglobal.h:937
GLuint src
Definition: GLee.h:7190
quint32 qFromLittleEndian< quint32 >(const uchar *src)
Definition: qendian.h:148
qint16 qFromLittleEndian< qint16 > ( const uchar *  src)
inline

Definition at line 171 of file qendian.h.

172 { return static_cast<qint16>(qFromLittleEndian<quint16>(src)); }
quint16 qFromLittleEndian< quint16 >(const uchar *src)
Definition: qendian.h:157
GLuint src
Definition: GLee.h:7190
short qint16
Definition: qglobal.h:935
T qFromBigEndian ( const uchar *  src)
inline
quint64 qFromBigEndian< quint64 > ( const uchar *  src)
inline

Definition at line 225 of file qendian.h.

226 {
227  return 0
228  | src[7]
229  | src[6] * Q_UINT64_C(0x0000000000000100)
230  | src[5] * Q_UINT64_C(0x0000000000010000)
231  | src[4] * Q_UINT64_C(0x0000000001000000)
232  | src[3] * Q_UINT64_C(0x0000000100000000)
233  | src[2] * Q_UINT64_C(0x0000010000000000)
234  | src[1] * Q_UINT64_C(0x0001000000000000)
235  | src[0] * Q_UINT64_C(0x0100000000000000);
236 }
GLuint src
Definition: GLee.h:7190
#define Q_UINT64_C(c)
Definition: qglobal.h:946
quint32 qFromBigEndian< quint32 > ( const uchar *  src)
inline

Definition at line 239 of file qendian.h.

240 {
241  return 0
242  | src[3]
243  | src[2] * quint32(0x00000100)
244  | src[1] * quint32(0x00010000)
245  | src[0] * quint32(0x01000000);
246 }
GLuint src
Definition: GLee.h:7190
unsigned int quint32
Definition: qglobal.h:938
quint16 qFromBigEndian< quint16 > ( const uchar *  src)
inline

Definition at line 249 of file qendian.h.

250 {
251  return quint16( 0
252  | src[1]
253  | src[0] * quint16(0x0100));
254 }
GLuint src
Definition: GLee.h:7190
unsigned short quint16
Definition: qglobal.h:936
qint64 qFromBigEndian< qint64 > ( const uchar *  src)
inline

Definition at line 258 of file qendian.h.

259 { return static_cast<qint64>(qFromBigEndian<quint64>(src)); }
GLuint src
Definition: GLee.h:7190
long long qint64
Definition: qglobal.h:947
quint64 qFromBigEndian< quint64 >(const uchar *src)
Definition: qendian.h:225
qint32 qFromBigEndian< qint32 > ( const uchar *  src)
inline

Definition at line 261 of file qendian.h.

262 { return static_cast<qint32>(qFromBigEndian<quint32>(src)); }
int qint32
Definition: qglobal.h:937
GLuint src
Definition: GLee.h:7190
quint32 qFromBigEndian< quint32 >(const uchar *src)
Definition: qendian.h:239
qint16 qFromBigEndian< qint16 > ( const uchar *  src)
inline

Definition at line 264 of file qendian.h.

265 { return static_cast<qint16>(qFromBigEndian<quint16>(src)); }
GLuint src
Definition: GLee.h:7190
short qint16
Definition: qglobal.h:935
quint16 qFromBigEndian< quint16 >(const uchar *src)
Definition: qendian.h:249
T qbswap ( source)
quint64 qbswap< quint64 > ( quint64  source)
inline

Definition at line 289 of file qendian.h.

290 {
291  return 0
292  | ((source & Q_UINT64_C(0x00000000000000ff)) << 56)
293  | ((source & Q_UINT64_C(0x000000000000ff00)) << 40)
294  | ((source & Q_UINT64_C(0x0000000000ff0000)) << 24)
295  | ((source & Q_UINT64_C(0x00000000ff000000)) << 8)
296  | ((source & Q_UINT64_C(0x000000ff00000000)) >> 8)
297  | ((source & Q_UINT64_C(0x0000ff0000000000)) >> 24)
298  | ((source & Q_UINT64_C(0x00ff000000000000)) >> 40)
299  | ((source & Q_UINT64_C(0xff00000000000000)) >> 56);
300 }
GLsizei GLsizei GLchar * source
Definition: GLee.h:1721
#define Q_UINT64_C(c)
Definition: qglobal.h:946
quint32 qbswap< quint32 > ( quint32  source)
inline

Definition at line 302 of file qendian.h.

303 {
304  return 0
305  | ((source & 0x000000ff) << 24)
306  | ((source & 0x0000ff00) << 8)
307  | ((source & 0x00ff0000) >> 8)
308  | ((source & 0xff000000) >> 24);
309 }
GLsizei GLsizei GLchar * source
Definition: GLee.h:1721
quint16 qbswap< quint16 > ( quint16  source)
inline

Definition at line 311 of file qendian.h.

312 {
313  return quint16( 0
314  | ((source & 0x00ff) << 8)
315  | ((source & 0xff00) >> 8) );
316 }
GLsizei GLsizei GLchar * source
Definition: GLee.h:1721
unsigned short quint16
Definition: qglobal.h:936
qint64 qbswap< qint64 > ( qint64  source)
inline

Definition at line 320 of file qendian.h.

321 {
322  return qbswap<quint64>(quint64(source));
323 }
GLsizei GLsizei GLchar * source
Definition: GLee.h:1721
quint64 qbswap< quint64 >(quint64 source)
Definition: qendian.h:289
unsigned long long quint64
Definition: qglobal.h:948
qint32 qbswap< qint32 > ( qint32  source)
inline

Definition at line 325 of file qendian.h.

326 {
327  return qbswap<quint32>(quint32(source));
328 }
GLsizei GLsizei GLchar * source
Definition: GLee.h:1721
unsigned int quint32
Definition: qglobal.h:938
quint32 qbswap< quint32 >(quint32 source)
Definition: qendian.h:302
qint16 qbswap< qint16 > ( qint16  source)
inline

Definition at line 330 of file qendian.h.

331 {
332  return qbswap<quint16>(quint16(source));
333 }
GLsizei GLsizei GLchar * source
Definition: GLee.h:1721
unsigned short quint16
Definition: qglobal.h:936
quint16 qbswap< quint16 >(quint16 source)
Definition: qendian.h:311
T qToBigEndian ( source)
inline

Definition at line 351 of file qendian.h.

352 { return qbswap<T>(source); }
GLsizei GLsizei GLchar * source
Definition: GLee.h:1721
T qFromBigEndian ( source)
inline

Definition at line 353 of file qendian.h.

354 { return qbswap<T>(source); }
GLsizei GLsizei GLchar * source
Definition: GLee.h:1721
T qToLittleEndian ( source)
inline

Definition at line 355 of file qendian.h.

356 { return source; }
GLsizei GLsizei GLchar * source
Definition: GLee.h:1721
T qFromLittleEndian ( source)
inline

Definition at line 357 of file qendian.h.

358 { return source; }
GLsizei GLsizei GLchar * source
Definition: GLee.h:1721
void qToBigEndian ( src,
uchar *  dest 
)
inline

Definition at line 359 of file qendian.h.

360 { qbswap<T>(src, dest); }
GLuint src
Definition: GLee.h:7190
void qToLittleEndian ( src,
uchar *  dest 
)
inline

Definition at line 361 of file qendian.h.

362 { qToUnaligned<T>(src, dest); }
GLuint src
Definition: GLee.h:7190
quint8 qbswap< quint8 > ( quint8  source)
inline

Definition at line 366 of file qendian.h.

367 {
368  return source;
369 }
GLsizei GLsizei GLchar * source
Definition: GLee.h:1721

Go to the source code of this file.