1 #ifndef __UTILMM_SYSTEM_ENDIAN_HH 2 #define __UTILMM_SYSTEM_ENDIAN_HH 4 #include <utilmm/config/config.h> 5 #include <boost/integer.hpp> 17 {
typedef typename boost::uint_t<size>::least
least; };
21 template<
int size,
typename D>
27 { buffer = ((data >> 8) & 0xFF) | ((data << 8) & 0xFF00); }
29 { buffer = ((data & 0xFF000000) >> 24) | ((data & 0x00FF0000) >> 8) | ((data & 0xFF) << 24) | ((data & 0xFF00) << 8); }
33 src_low (data & 0xFFFFFFFF)
34 , src_high(data >> 32);
36 uint32_t dst_low, dst_high;
40 buffer =
static_cast<uint64_t
>(dst_high) << 32 | dst_low;
46 inline void swap(
const S data, S& buffer)
49 details::swap_helper<sizeof(S), T> (
reinterpret_cast<const T&
>(data), reinterpret_cast<T&>(buffer));
54 inline S
swap(
const S data)
60 #ifdef WORDS_BIGENDIAN 72 inline void to_little(
const S source, S& dest) { swap<S>(
source, dest); }
79 inline void to_big(
const S source, S& dest) { swap<S>(
source, dest); }
void swap_helper< 8, uint64_t >(const uint64_t data, uint64_t &buffer)
Definition: endian.hh:30
uint64_t least
Definition: endian.hh:19
boost::graph_traits< BidirectionalGraph >::vertex_descriptor source(const Edge &e, const undirected_graph< BidirectionalGraph, GRef > &g)
Definition: undirected_graph.hh:268
void to_little(const S source, S &dest)
Definition: endian.hh:83
void swap_helper(const D data, D &buffer)
boost::uint_t< size >::least least
Definition: endian.hh:17
void to_network(const S source, S &dest)
Definition: endian.hh:114
void from_little(const S source, S &dest)
Definition: endian.hh:99
void swap(const S data, S &buffer)
Definition: endian.hh:46
void from_big(const S source, S &dest)
Definition: endian.hh:107
void swap_helper< 2, uint16_t >(const uint16_t data, uint16_t &buffer)
Definition: endian.hh:26
void swap_helper< 4, uint32_t >(const uint32_t data, uint32_t &buffer)
Definition: endian.hh:28
void from_network(const S source, S &dest)
Definition: endian.hh:91
Definition: auto_flag.hh:6
void swap_helper< 1, uint8_t >(const uint8_t data, uint8_t &buffer)
Definition: endian.hh:24
void to_big(const S source, S &dest)
Definition: endian.hh:79