20#ifndef _cmnDataFormat_h
21#define _cmnDataFormat_h
45 return this->WordSizeMember;
49 return this->EndiannessMember;
53 return this->SizeTSizeMember;
57 WordSize WordSizeMember;
58 Endianness EndiannessMember;
59 SizeTSize SizeTSizeMember;
63template <
class _elementType,
size_t _sizeInBytes>
69 cmnThrow(
"cmnDataByteSwap: a partial specialization should be called!");
73template <
class _elementType>
82template <
class _elementType>
87 *(
unsigned short *)&(data) = ( ((*(
unsigned short *)&(data) & 0xff) << 8) |
88 (*(
unsigned short *)&(data) >> 8) );
92template <
class _elementType>
97 *(
unsigned int *)&(data) = ( ((*(
unsigned int *)&(data) & 0xff000000) >> 24) |
98 ((*(
unsigned int *)&(data) & 0x00ff0000) >> 8) |
99 ((*(
unsigned int *)&(data) & 0x0000ff00) << 8) |
100 ((*(
unsigned int *)&(data) & 0x000000ff) << 24) );
104template <
class _elementType>
109 *(
unsigned long long int *)&(data) = ( ((*(
unsigned long long int *)&(data) & 0xff00000000000000ULL) >> 56) |
110 ((*(
unsigned long long int *)&(data) & 0x00ff000000000000ULL) >> 40) |
111 ((*(
unsigned long long int *)&(data) & 0x0000ff0000000000ULL) >> 24) |
112 ((*(
unsigned long long int *)&(data) & 0x000000ff00000000ULL) >> 8) |
113 ((*(
unsigned long long int *)&(data) & 0x00000000ff000000ULL) << 8) |
114 ((*(
unsigned long long int *)&(data) & 0x0000000000ff0000ULL) << 24) |
115 ((*(
unsigned long long int *)&(data) & 0x000000000000ff00ULL) << 40) |
116 ((*(
unsigned long long int *)&(data) & 0x00000000000000ffULL) << 56) );
120template <
class _elementType>
static void Execute(_elementType &data) CISST_THROW(std
Definition cmnDataFormat.h:86
static void Execute(_elementType &data) CISST_THROW(std
Definition cmnDataFormat.h:96
static void Execute(_elementType &data) CISST_THROW(std
Definition cmnDataFormat.h:108
Definition cmnDataFormat.h:65
Macros to export the symbols of cisstCommon (in a Dll).
#define CISST_EXPORT
Definition cmnExportMacros.h:50
Portability across compilers and operating systems tools.
#define CMN_UNUSED(argument)
Definition cmnPortability.h:497
#define CISST_THROW(exceptionParameter)
Somewhat portable compilation warning message. This works with very recent versions of gcc (4....
Definition cmnPortability.h:559
Declaration of the template function cmnThrow.
void cmnThrow(const _exceptionType &except, cmnLogLevel lod=CMN_LOG_LEVEL_INIT_ERROR)
Definition cmnThrow.h:76