The Sparta Modeling Framework
|
Byte order types and byte-swapping routines. More...
#include <iostream>
#include <typeinfo>
#include <boost/mpl/assert.hpp>
#include "sparta/utils/SpartaException.hpp"
#include "sparta/utils/SpartaAssert.hpp"
Go to the source code of this file.
Namespaces | |
namespace | sparta |
Macros for handling exponential backoff. | |
Macros | |
#define | HOST_INT_SIZE sizeof(uint32_t) |
Enumerations | |
enum | sparta::ByteOrder { LE = 0 , sparta::BE = 1 } |
Byte order enum for read/write methods. More... | |
Functions | |
template<typename T > | |
std::enable_if< std::is_integral< T >::value, T >::type | sparta::byte_swap (T val) |
Swaps the order of bytes for various types. | |
template<> | |
uint8_t | sparta::byte_swap (uint8_t val) |
template<> | |
int8_t | sparta::byte_swap (int8_t val) |
template<> | |
uint16_t | sparta::byte_swap (uint16_t val) |
template<> | |
int16_t | sparta::byte_swap (int16_t val) |
template<> | |
uint32_t | sparta::byte_swap (uint32_t val) |
template<> | |
int32_t | sparta::byte_swap (int32_t val) |
template<> | |
uint64_t | sparta::byte_swap (uint64_t val) |
template<> | |
int64_t | sparta::byte_swap (int64_t val) |
template<typename T , enum ByteOrder BO> | |
std::enable_if< std::is_same< boost::mpl::int_< BO >, boost::mpl::int_< BE > >::value, T >::type | sparta::reorder (const T &t) |
template<typename T , enum ByteOrder BO> | |
std::enable_if< std::is_same< boost::mpl::int_< BO >, boost::mpl::int_< LE > >::value, T >::type | sparta::reorder (const T &t) |
Byte order types and byte-swapping routines.
Contains byte_swap methods for a number of types.
Definition in file ByteOrder.hpp.
#define HOST_INT_SIZE sizeof(uint32_t) |
Targeted for a Little Endian architecture. If this were to change, ArchData store/load routines would need to be updated to detect or force a byte-order. read/write routines would also need to change.
Definition at line 28 of file ByteOrder.hpp.