ledger-core
Enumerations | Functions
ledger::core::endianness Namespace Reference

Enumerations

enum  Endianness { BIG = 1, LITTLE }
 

Functions

Endianness getSystemEndianness ()
 
bool isSystemBigEndian ()
 
bool isSystemLittleEndian ()
 
void * swapToBigEndian (void *ptr, size_t size)
 
void * swapToLittleEndian (void *ptr, size_t size)
 
void * swapToEndianness (void *ptr, size_t size, Endianness current, Endianness final)
 
const void * int_to_array (int i, Endianness endianness)
 
const void * unsigned_long_long_to_array (unsigned long long i, Endianness endianness)
 
template<typename T >
void * scalar_type_to_array (T i, Endianness endianness)
 

Detailed Description

Endianness management functions

Function Documentation

◆ getSystemEndianness()

Endianness ledger::core::endianness::getSystemEndianness ( )

Checks if the current system uses big endian or little bytes order.

Returns

◆ isSystemBigEndian()

bool ledger::core::endianness::isSystemBigEndian ( )

Returns true if the current runtime uses big endian bytes order.

Returns

◆ isSystemLittleEndian()

bool ledger::core::endianness::isSystemLittleEndian ( )

Returns true if the current runtime uses little endian bytes order.

Returns

◆ swapToBigEndian()

void * ledger::core::endianness::swapToBigEndian ( void *  ptr,
size_t  size 
)

Swaps ptr bytes to big endian bytes order if the current runtime uses little endia bytes order.

Parameters
ptrThe buffer to force in big endian bytes order
sizeThe size of the buffer
Returns

◆ swapToEndianness()

void * ledger::core::endianness::swapToEndianness ( void *  ptr,
size_t  size,
Endianness  current,
Endianness  final 
)

Swaps ptr bytes to final endianness only if necessary

Parameters
ptrThe buffer to force in "final" endianness
sizeThe size of the buffer
currentThe current byte order of ptr
finalThe desired final byte order of ptr
Returns

◆ swapToLittleEndian()

void * ledger::core::endianness::swapToLittleEndian ( void *  ptr,
size_t  size 
)

Swaps ptr bytes to little endian bytes order if the current runtime uses big endia bytes order.

Parameters
ptrThe buffer to force in little endian bytes order
sizeThe size of the buffer
Returns