jaulib v1.3.6
Jau Support Library (C++, Java, ..)
|
Byte utility functions and types for endian- and bit conversions, inclusive alignment handling and general get & put functionality. More...
Namespaces | |
namespace | jau::impl |
Classes | |
class | jau::AOctets< FixedSize > |
Persistent endian aware octet data, i.e. More... | |
struct | jau::has_endian_big< Dummy_type > |
A big-endian type trait for convenience . More... | |
struct | jau::has_endian_little< Dummy_type > |
A little-endian type trait for convenience . More... | |
class | jau::POctets |
Persistent endian aware octet data, i.e. More... | |
class | jau::TOctets |
Transient endian aware octet data, i.e. More... | |
class | jau::TOctetSlice |
Transient endian aware octet data slice, i.e. More... | |
class | jau::TROOctets |
Transient read only and endian aware octet data, i.e. More... | |
Enumerations | |
enum class | jau::endian_t : uint32_t { jau::endian_t::little = 0x41424344U , jau::endian_t::big = 0x44434241U , jau::endian_t::pdp = 0x43444142U , jau::endian_t::honeywell = 0x42414443U , jau::endian_t::undefined = 0x00000000U , jau::endian_t::native = impl::get_host_order() } |
Endian identifier, indicating endianess of all scalar types. More... | |
enum class | jau::lb_endian_t : uint32_t { jau::lb_endian_t::little = static_cast<uint32_t>( endian_t::little ) , jau::lb_endian_t::big = static_cast<uint32_t>( endian_t::big ) , jau::lb_endian_t::native = static_cast<uint32_t>( endian_t::native ) } |
Simplified reduced endian type only covering little- and big-endian. More... | |
Functions | |
constexpr int16_t | jau::be_to_cpu (int16_t const n) noexcept |
constexpr int32_t | jau::be_to_cpu (int32_t const n) noexcept |
constexpr int64_t | jau::be_to_cpu (int64_t const &n) noexcept |
constexpr uint128dp_t | jau::be_to_cpu (uint128dp_t const &n) noexcept |
constexpr uint16_t | jau::be_to_cpu (uint16_t const n) noexcept |
constexpr uint192dp_t | jau::be_to_cpu (uint192dp_t const &n) noexcept |
constexpr uint256dp_t | jau::be_to_cpu (uint256dp_t const &n) noexcept |
constexpr uint32_t | jau::be_to_cpu (uint32_t const n) noexcept |
constexpr uint64_t | jau::be_to_cpu (uint64_t const &n) noexcept |
constexpr int16_t | jau::bswap (int16_t const source) noexcept |
constexpr int32_t | jau::bswap (int32_t const source) noexcept |
constexpr int64_t | jau::bswap (int64_t const &source) noexcept |
constexpr uint128dp_t | jau::bswap (uint128dp_t const &source) noexcept |
constexpr uint16_t | jau::bswap (uint16_t const source) noexcept |
constexpr uint192dp_t | jau::bswap (uint192dp_t const &source) noexcept |
constexpr uint256dp_t | jau::bswap (uint256dp_t const &source) noexcept |
constexpr uint32_t | jau::bswap (uint32_t const source) noexcept |
constexpr uint64_t | jau::bswap (uint64_t const &source) noexcept |
constexpr void | jau::bswap (uint8_t *sink, uint8_t const *source, nsize_t len) |
const uint8_t * | jau::cast_char_ptr_to_uint8 (const char *s) noexcept |
const char * | jau::cast_uint8_ptr_to_char (const uint8_t *b) noexcept |
char * | jau::cast_uint8_ptr_to_char (uint8_t *b) noexcept |
constexpr int16_t | jau::cpu_to_be (int16_t const h) noexcept |
constexpr int32_t | jau::cpu_to_be (int32_t const h) noexcept |
constexpr int64_t | jau::cpu_to_be (int64_t const &h) noexcept |
constexpr uint128dp_t | jau::cpu_to_be (uint128dp_t const &h) noexcept |
constexpr uint16_t | jau::cpu_to_be (uint16_t const h) noexcept |
constexpr uint192dp_t | jau::cpu_to_be (uint192dp_t const &h) noexcept |
constexpr uint256dp_t | jau::cpu_to_be (uint256dp_t const &h) noexcept |
constexpr uint32_t | jau::cpu_to_be (uint32_t const h) noexcept |
constexpr uint64_t | jau::cpu_to_be (uint64_t const &h) noexcept |
constexpr int16_t | jau::cpu_to_le (int16_t const h) noexcept |
constexpr int32_t | jau::cpu_to_le (int32_t const h) noexcept |
constexpr int64_t | jau::cpu_to_le (int64_t const &h) noexcept |
constexpr uint128dp_t | jau::cpu_to_le (uint128dp_t const &h) noexcept |
constexpr uint16_t | jau::cpu_to_le (uint16_t const h) noexcept |
constexpr uint192dp_t | jau::cpu_to_le (uint192dp_t const &h) noexcept |
constexpr uint256dp_t | jau::cpu_to_le (uint256dp_t const &h) noexcept |
constexpr uint32_t | jau::cpu_to_le (uint32_t const h) noexcept |
constexpr uint64_t | jau::cpu_to_le (uint64_t const &h) noexcept |
std::string | jau::dfa_utf8_decode (const uint8_t *buffer, const size_t buffer_size) |
Returns all valid consecutive UTF-8 characters within buffer in the range up to buffer_size or until EOS. | |
uint32_t | jau::dfa_utf8_decode (uint32_t &state, uint32_t &codep, const uint32_t byte_value) |
constexpr int16_t | jau::get_int16 (uint8_t const *buffer) noexcept |
Returns a int16_t value from the given byte address using packed_t to resolve a potential memory alignment issue free of costs. | |
constexpr int16_t | jau::get_int16 (uint8_t const *buffer, const lb_endian_t byte_order) noexcept |
Returns a int16_t value from the given byte address using packed_t to resolve a potential memory alignment issue free of costs. | |
constexpr int32_t | jau::get_int32 (uint8_t const *buffer) noexcept |
See get_int16() for reference. | |
constexpr int32_t | jau::get_int32 (uint8_t const *buffer, const lb_endian_t byte_order) noexcept |
See get_int16() for reference. | |
constexpr int64_t | jau::get_int64 (uint8_t const *buffer) noexcept |
See get_int16() for reference. | |
constexpr int64_t | jau::get_int64 (uint8_t const *buffer, const lb_endian_t byte_order) noexcept |
See get_int16() for reference. | |
constexpr int8_t | jau::get_int8 (uint8_t const *buffer) noexcept |
template<typename T> | |
constexpr T | jau::get_packed_value (const packed_t< T > *source, const lb_endian_t byte_order) noexcept |
Return packed_t::store after converting it to from either lb_endian::little or lb_endian::big depending on given byte_order to lb_endian::native. | |
constexpr uint128dp_t | jau::get_uint128 (uint8_t const *buffer) noexcept |
See get_uint16() for reference. | |
constexpr uint128dp_t | jau::get_uint128 (uint8_t const *buffer, const lb_endian_t byte_order) noexcept |
See get_uint16() for reference. | |
constexpr uint16_t | jau::get_uint16 (uint8_t const *buffer) noexcept |
Returns a uint16_t value from the given byte address using packed_t to resolve a potential memory alignment issue free of costs. | |
constexpr uint16_t | jau::get_uint16 (uint8_t const *buffer, const lb_endian_t byte_order) noexcept |
Returns a uint16_t value from the given byte address using packed_t to resolve a potential memory alignment issue free of costs. | |
constexpr uint192dp_t | jau::get_uint192 (uint8_t const *buffer) noexcept |
See get_uint16() for reference. | |
constexpr uint192dp_t | jau::get_uint192 (uint8_t const *buffer, const lb_endian_t byte_order) noexcept |
See get_uint16() for reference. | |
constexpr uint256dp_t | jau::get_uint256 (uint8_t const *buffer) noexcept |
See get_uint16() for reference. | |
constexpr uint256dp_t | jau::get_uint256 (uint8_t const *buffer, const lb_endian_t byte_order) noexcept |
See get_uint16() for reference. | |
constexpr uint32_t | jau::get_uint32 (uint8_t const *buffer) noexcept |
See get_uint16() for reference. | |
constexpr uint32_t | jau::get_uint32 (uint8_t const *buffer, const lb_endian_t byte_order) noexcept |
See get_uint16() for reference. | |
constexpr uint64_t | jau::get_uint64 (uint8_t const *buffer) noexcept |
See get_uint16() for reference. | |
constexpr uint64_t | jau::get_uint64 (uint8_t const *buffer, const lb_endian_t byte_order) noexcept |
See get_uint16() for reference. | |
constexpr uint8_t | jau::get_uint8 (uint8_t const *buffer) noexcept |
template<typename T> | |
constexpr std::enable_if_t< std::is_standard_layout_v< T >, T > | jau::get_value (uint8_t const *buffer) noexcept |
Returns a T value from the given byte address using packed_t to resolve a potential memory alignment issue free of costs. | |
template<typename T> | |
constexpr std::enable_if_t< std::is_standard_layout_v< T >, T > | jau::get_value (uint8_t const *buffer, const lb_endian_t byte_order) noexcept |
Returns a T value from the given byte address using packed_t to resolve a potential memory alignment issue free of costs. | |
constexpr bool | jau::is_big_endian () noexcept |
Evaluates true if platform is running in big endian mode, i.e. | |
constexpr bool | jau::is_defined_endian (const endian_t &v) noexcept |
Evaluates true if the given endian is defined, i.e. | |
constexpr bool | jau::is_little_endian () noexcept |
Evaluates true if platform is running in little endian mode, i.e. | |
constexpr bool | jau::is_little_endian (const endian_t byte_order) noexcept |
Returns true if given byte_order equals endian::little, otherwise false. | |
constexpr bool | jau::is_little_endian (const lb_endian_t byte_order) noexcept |
Returns true if given byte_order equals lb_endian::little, otherwise false. | |
constexpr bool | jau::is_little_or_big_endian () noexcept |
Evaluates true if platform is running in little or big endian mode, i.e. | |
constexpr int16_t | jau::le_to_cpu (int16_t const l) noexcept |
constexpr int32_t | jau::le_to_cpu (int32_t const l) noexcept |
constexpr int64_t | jau::le_to_cpu (int64_t const &l) noexcept |
constexpr uint128dp_t | jau::le_to_cpu (uint128dp_t const &l) noexcept |
constexpr uint16_t | jau::le_to_cpu (uint16_t const l) noexcept |
constexpr uint192dp_t | jau::le_to_cpu (uint192dp_t const &l) noexcept |
constexpr uint256dp_t | jau::le_to_cpu (uint256dp_t const &l) noexcept |
constexpr uint32_t | jau::le_to_cpu (uint32_t const l) noexcept |
constexpr uint64_t | jau::le_to_cpu (uint64_t const &l) noexcept |
constexpr void | jau::put_int16 (uint8_t *buffer, const int16_t v) noexcept |
Put the given int16_t value into the given byte address using packed_t to resolve a potential memory alignment issue free of costs. | |
constexpr void | jau::put_int16 (uint8_t *buffer, const int16_t v, const lb_endian_t byte_order) noexcept |
Put the given uint16_t value into the given byte address using packed_t to resolve a potential memory alignment issue free of costs. | |
constexpr void | jau::put_int32 (uint8_t *buffer, const int32_t v) noexcept |
See put_int16() for reference. | |
constexpr void | jau::put_int32 (uint8_t *buffer, const int32_t v, const lb_endian_t byte_order) noexcept |
See put_int16() for reference. | |
constexpr void | jau::put_int64 (uint8_t *buffer, const int64_t &v) noexcept |
See put_int16() for reference. | |
constexpr void | jau::put_int64 (uint8_t *buffer, const int64_t &v, const lb_endian_t byte_order) noexcept |
See put_int16() for reference. | |
constexpr void | jau::put_uint128 (uint8_t *buffer, const uint128dp_t &v) noexcept |
See put_uint16() for reference. | |
constexpr void | jau::put_uint128 (uint8_t *buffer, const uint128dp_t &v, const lb_endian_t byte_order) noexcept |
See put_uint16() for reference. | |
constexpr void | jau::put_uint16 (uint8_t *buffer, const uint16_t v) noexcept |
Put the given uint16_t value into the given byte address using packed_t to resolve a potential memory alignment issue free of costs. | |
constexpr void | jau::put_uint16 (uint8_t *buffer, const uint16_t v, const lb_endian_t byte_order) noexcept |
Put the given uint16_t value into the given byte address using packed_t to resolve a potential memory alignment issue free of costs. | |
constexpr void | jau::put_uint192 (uint8_t *buffer, const uint192dp_t &v) noexcept |
See put_uint16() for reference. | |
constexpr void | jau::put_uint192 (uint8_t *buffer, const uint192dp_t &v, const lb_endian_t byte_order) noexcept |
See put_uint16() for reference. | |
constexpr void | jau::put_uint256 (uint8_t *buffer, const uint256dp_t &v) noexcept |
See put_uint16() for reference. | |
constexpr void | jau::put_uint256 (uint8_t *buffer, const uint256dp_t &v, const lb_endian_t byte_order) noexcept |
See put_uint16() for reference. | |
constexpr void | jau::put_uint32 (uint8_t *buffer, const uint32_t v) noexcept |
See put_uint16() for reference. | |
constexpr void | jau::put_uint32 (uint8_t *buffer, const uint32_t v, const lb_endian_t byte_order) noexcept |
See put_uint16() for reference. | |
constexpr void | jau::put_uint64 (uint8_t *buffer, const uint64_t &v) noexcept |
See put_uint16() for reference. | |
constexpr void | jau::put_uint64 (uint8_t *buffer, const uint64_t &v, const lb_endian_t byte_order) noexcept |
See put_uint16() for reference. | |
constexpr void | jau::put_uint8 (uint8_t *buffer, const uint8_t v) noexcept |
template<typename T> | |
constexpr std::enable_if_t< std::is_standard_layout_v< T >, void > | jau::put_value (uint8_t *buffer, const T &v) noexcept |
Put the given T value into the given byte address using packed_t to resolve a potential memory alignment issue free of costs. | |
template<typename T> | |
constexpr std::enable_if_t< std::is_standard_layout_v< T >, void > | jau::put_value (uint8_t *buffer, const T &v, const lb_endian_t byte_order) noexcept |
Put the given T value into the given byte address using packed_t to resolve a potential memory alignment issue free of costs. | |
constexpr endian_t | jau::to_endian (const lb_endian_t v) noexcept |
constexpr lb_endian_t | jau::to_lb_endian (const endian_t v) noexcept |
std::string | jau::to_string (const endian_t v) noexcept |
Return std::string representation of the given endian. | |
std::string | jau::to_string (const lb_endian_t v) noexcept |
Return std::string representation of the given lb_endian. | |
Variables | |
template<typename Dummy_type> | |
constexpr bool | jau::has_endian_big_v = has_endian_big<Dummy_type>::value |
Value access of big-endian type trait for convenience . | |
template<typename Dummy_type> | |
constexpr bool | jau::has_endian_little_v = has_endian_little<Dummy_type>::value |
Value access of little-endian type trait for convenience . | |
Byte utility functions and types for endian- and bit conversions, inclusive alignment handling and general get & put functionality.
This category is also supporting Integer types and arithmetic.
All endian API entries are of constexpr
and hence evaluated at compile time.
Therefore, if-branches and expressions are also of constexpr
and optimized 'away' at compile time.
This includes the cpu_to_<endian>(..)
and <endian>_to_cpu(..)
etc utility functions.
See endian enum class regarding endian constexpr
compile time determination.
Aligned memory transfer from and to potentially unaligned memory is performed via put_uint16(), get_uint16() with all its explicit stdint types, as well as the generic template functions put_value() and get_value(). The implementation uses packed_t to resolve a potential memory alignment issue free of costs, see packed_t_alignment_cast.
|
strong |
Endian identifier, indicating endianess of all scalar types.
Inspired by C++20 std::endian
Corner case platforms currently not supported, i.e. unified endianess and mixed endianess.
All endian API entries are of constexpr
and hence evaluated at compile time.
Therefore, if-branches and expressions are also of constexpr
and optimized 'away' at compile time.
This includes the cpu_to_<endian>(..)
and <endian>_to_cpu(..)
etc utility functions.
On i386 platforms the host byte order is Least Significant Byte first (LSB) or Little-Endian, whereas the network byte order, as used on the Internet, is Most Significant Byte first (MSB) or Big-Endian. See #include <arpa/inet.h>
Bluetooth is LSB or Little-Endian!
See lb_endian
Definition at line 235 of file byte_util.hpp.
|
strong |
Simplified reduced endian type only covering little- and big-endian.
See endian for details.
Enumerator | |
---|---|
little | Identifier for little endian, equivalent to endian::little. |
big | Identifier for big endian, equivalent to endian::big. |
native | Identifier for native platform type, one of the above. |
Definition at line 259 of file byte_util.hpp.
|
constexprnoexcept |
Definition at line 86 of file byte_util.hpp.
|
constexprnoexcept |
Definition at line 95 of file byte_util.hpp.
|
constexprnoexcept |
Definition at line 104 of file byte_util.hpp.
|
constexprnoexcept |
Definition at line 115 of file byte_util.hpp.
|
constexprnoexcept |
Definition at line 126 of file byte_util.hpp.
|
constexprnoexcept |
Definition at line 141 of file byte_util.hpp.
|
constexpr |
Definition at line 156 of file byte_util.hpp.
|
constexprnoexcept |
Definition at line 163 of file byte_util.hpp.
|
constexprnoexcept |
Definition at line 169 of file byte_util.hpp.
|
constexprnoexcept |
Definition at line 175 of file byte_util.hpp.
|
inlinenoexcept |
Definition at line 181 of file byte_util.hpp.
|
inlinenoexcept |
Definition at line 184 of file byte_util.hpp.
|
inlinenoexcept |
|
noexcept |
Return std::string representation of the given endian.
v | the endian value |
Definition at line 795 of file basic_types.cpp.
|
noexcept |
Return std::string representation of the given lb_endian.
v | the lb_endian value |
Definition at line 806 of file basic_types.cpp.
|
constexprnoexcept |
|
constexprnoexcept |
Definition at line 294 of file byte_util.hpp.
|
constexprnoexcept |
Evaluates true
if the given endian is defined, i.e.
little
, big
, pdp
or honeywell
.
Definition at line 308 of file byte_util.hpp.
|
constexprnoexcept |
Returns true
if given byte_order
equals endian::little, otherwise false.
Definition at line 326 of file byte_util.hpp.
|
constexprnoexcept |
Returns true
if given byte_order
equals lb_endian::little, otherwise false.
Definition at line 333 of file byte_util.hpp.
|
constexprnoexcept |
Evaluates true
if platform is running in little endian mode, i.e.
jau::endian::little == jau::endian::native
.
Definition at line 341 of file byte_util.hpp.
|
constexprnoexcept |
Evaluates true
if platform is running in big endian mode, i.e.
jau::endian::big == jau::endian::native
.
Definition at line 349 of file byte_util.hpp.
|
constexprnoexcept |
Evaluates true
if platform is running in little or big endian mode, i.e.
jau::endian::little == jau::endian::native || jau::endian::big == jau::endian::native
.
Definition at line 357 of file byte_util.hpp.
|
constexprnoexcept |
Definition at line 411 of file byte_util.hpp.
|
constexprnoexcept |
|
constexprnoexcept |
Definition at line 429 of file byte_util.hpp.
|
constexprnoexcept |
|
constexprnoexcept |
Definition at line 448 of file byte_util.hpp.
|
constexprnoexcept |
Definition at line 457 of file byte_util.hpp.
|
constexprnoexcept |
Definition at line 466 of file byte_util.hpp.
|
constexprnoexcept |
Definition at line 475 of file byte_util.hpp.
|
constexprnoexcept |
Definition at line 485 of file byte_util.hpp.
|
constexprnoexcept |
Definition at line 494 of file byte_util.hpp.
|
constexprnoexcept |
Definition at line 503 of file byte_util.hpp.
|
constexprnoexcept |
Definition at line 512 of file byte_util.hpp.
|
constexprnoexcept |
Definition at line 522 of file byte_util.hpp.
|
constexprnoexcept |
Definition at line 531 of file byte_util.hpp.
|
constexprnoexcept |
Definition at line 540 of file byte_util.hpp.
|
constexprnoexcept |
Definition at line 549 of file byte_util.hpp.
|
constexprnoexcept |
Definition at line 559 of file byte_util.hpp.
|
constexprnoexcept |
Definition at line 568 of file byte_util.hpp.
|
constexprnoexcept |
Definition at line 577 of file byte_util.hpp.
|
constexprnoexcept |
Definition at line 586 of file byte_util.hpp.
|
constexprnoexcept |
Definition at line 596 of file byte_util.hpp.
|
constexprnoexcept |
Definition at line 605 of file byte_util.hpp.
|
constexprnoexcept |
Definition at line 614 of file byte_util.hpp.
|
constexprnoexcept |
Definition at line 623 of file byte_util.hpp.
|
constexprnoexcept |
Definition at line 633 of file byte_util.hpp.
|
constexprnoexcept |
Definition at line 642 of file byte_util.hpp.
|
constexprnoexcept |
Definition at line 651 of file byte_util.hpp.
|
constexprnoexcept |
Definition at line 660 of file byte_util.hpp.
|
constexprnoexcept |
Definition at line 670 of file byte_util.hpp.
|
constexprnoexcept |
Definition at line 679 of file byte_util.hpp.
|
constexprnoexcept |
Definition at line 688 of file byte_util.hpp.
|
constexprnoexcept |
Definition at line 697 of file byte_util.hpp.
|
constexprnoexcept |
Definition at line 707 of file byte_util.hpp.
|
constexprnoexcept |
Definition at line 716 of file byte_util.hpp.
|
constexprnoexcept |
Definition at line 725 of file byte_util.hpp.
|
constexprnoexcept |
Definition at line 734 of file byte_util.hpp.
|
constexprnoexcept |
Definition at line 751 of file byte_util.hpp.
|
constexprnoexcept |
Definition at line 755 of file byte_util.hpp.
|
constexprnoexcept |
|
constexprnoexcept |
Return packed_t::store after converting it to from either lb_endian::little or lb_endian::big depending on given byte_order
to lb_endian::native.
T |
source | |
byte_order |
Definition at line 772 of file byte_util.hpp.
|
constexprnoexcept |
Put the given uint16_t value into the given byte address using packed_t to resolve a potential memory alignment issue free of costs.
Definition at line 782 of file byte_util.hpp.
|
constexprnoexcept |
Put the given uint16_t value into the given byte address using packed_t to resolve a potential memory alignment issue free of costs.
The value is converted from lb_endian::native to either lb_endian::little or lb_endian::big depending on given byte_order
before it is stored in memory.
Definition at line 795 of file byte_util.hpp.
|
constexprnoexcept |
Returns a uint16_t value from the given byte address using packed_t to resolve a potential memory alignment issue free of costs.
Definition at line 805 of file byte_util.hpp.
|
constexprnoexcept |
Returns a uint16_t value from the given byte address using packed_t to resolve a potential memory alignment issue free of costs.
The value is converted from either lb_endian::little or lb_endian::big depending on given byte_order
to lb_endian::native before it is returned to the caller.
Definition at line 818 of file byte_util.hpp.
|
constexprnoexcept |
Put the given int16_t value into the given byte address using packed_t to resolve a potential memory alignment issue free of costs.
Definition at line 829 of file byte_util.hpp.
|
constexprnoexcept |
Put the given uint16_t value into the given byte address using packed_t to resolve a potential memory alignment issue free of costs.
The value is converted from lb_endian::native to either lb_endian::little or lb_endian::big depending on given byte_order
before it is stored in memory.
Definition at line 842 of file byte_util.hpp.
|
constexprnoexcept |
Returns a int16_t value from the given byte address using packed_t to resolve a potential memory alignment issue free of costs.
Definition at line 852 of file byte_util.hpp.
|
constexprnoexcept |
Returns a int16_t value from the given byte address using packed_t to resolve a potential memory alignment issue free of costs.
The value is converted from either lb_endian::little or lb_endian::big depending on given byte_order
to lb_endian::native before it is returned to the caller.
Definition at line 865 of file byte_util.hpp.
|
constexprnoexcept |
See put_uint16() for reference.
Definition at line 874 of file byte_util.hpp.
|
constexprnoexcept |
See put_uint16() for reference.
Definition at line 882 of file byte_util.hpp.
|
constexprnoexcept |
See get_uint16() for reference.
Definition at line 890 of file byte_util.hpp.
|
constexprnoexcept |
See get_uint16() for reference.
Definition at line 898 of file byte_util.hpp.
|
constexprnoexcept |
See put_int16() for reference.
Definition at line 907 of file byte_util.hpp.
|
constexprnoexcept |
See put_int16() for reference.
Definition at line 915 of file byte_util.hpp.
|
constexprnoexcept |
See get_int16() for reference.
Definition at line 923 of file byte_util.hpp.
|
constexprnoexcept |
See get_int16() for reference.
Definition at line 931 of file byte_util.hpp.
|
constexprnoexcept |
See put_uint16() for reference.
Definition at line 940 of file byte_util.hpp.
|
constexprnoexcept |
See put_uint16() for reference.
Definition at line 948 of file byte_util.hpp.
|
constexprnoexcept |
See get_uint16() for reference.
Definition at line 956 of file byte_util.hpp.
|
constexprnoexcept |
See get_uint16() for reference.
Definition at line 964 of file byte_util.hpp.
|
constexprnoexcept |
See put_int16() for reference.
Definition at line 973 of file byte_util.hpp.
|
constexprnoexcept |
See put_int16() for reference.
Definition at line 981 of file byte_util.hpp.
|
constexprnoexcept |
See get_int16() for reference.
Definition at line 989 of file byte_util.hpp.
|
constexprnoexcept |
See get_int16() for reference.
Definition at line 997 of file byte_util.hpp.
|
constexprnoexcept |
See put_uint16() for reference.
Definition at line 1006 of file byte_util.hpp.
|
constexprnoexcept |
See put_uint16() for reference.
Definition at line 1014 of file byte_util.hpp.
|
constexprnoexcept |
See get_uint16() for reference.
Definition at line 1022 of file byte_util.hpp.
|
constexprnoexcept |
See get_uint16() for reference.
Definition at line 1030 of file byte_util.hpp.
|
constexprnoexcept |
See put_uint16() for reference.
Definition at line 1039 of file byte_util.hpp.
|
constexprnoexcept |
See put_uint16() for reference.
Definition at line 1047 of file byte_util.hpp.
|
constexprnoexcept |
See get_uint16() for reference.
Definition at line 1055 of file byte_util.hpp.
|
constexprnoexcept |
See get_uint16() for reference.
Definition at line 1063 of file byte_util.hpp.
|
constexprnoexcept |
See put_uint16() for reference.
Definition at line 1072 of file byte_util.hpp.
|
constexprnoexcept |
See put_uint16() for reference.
Definition at line 1080 of file byte_util.hpp.
|
constexprnoexcept |
See get_uint16() for reference.
Definition at line 1088 of file byte_util.hpp.
|
constexprnoexcept |
See get_uint16() for reference.
Definition at line 1096 of file byte_util.hpp.
|
constexprnoexcept |
Put the given T value into the given byte address using packed_t to resolve a potential memory alignment issue free of costs.
T |
buffer | |
v |
Definition at line 1121 of file byte_util.hpp.
|
constexprnoexcept |
Put the given T value into the given byte address using packed_t to resolve a potential memory alignment issue free of costs.
The value is converted from lb_endian::native to either lb_endian::little or lb_endian::big depending on given byte_order
before it is stored in memory.
T |
buffer | |
v | |
byte_order |
Definition at line 1145 of file byte_util.hpp.
|
constexprnoexcept |
Returns a T value from the given byte address using packed_t to resolve a potential memory alignment issue free of costs.
T |
buffer |
Definition at line 1164 of file byte_util.hpp.
|
constexprnoexcept |
Returns a T value from the given byte address using packed_t to resolve a potential memory alignment issue free of costs.
The value is converted from either lb_endian::little or lb_endian::big depending on given byte_order
to lb_endian::native before it is returned to the caller.
T |
buffer | |
byte_order |
Definition at line 1187 of file byte_util.hpp.
uint32_t jau::dfa_utf8_decode | ( | uint32_t & | state, |
uint32_t & | codep, | ||
const uint32_t | byte_value ) |
state | |
codep | |
byte_value |
Definition at line 90 of file dfa_utf8_decode.cpp.
std::string jau::dfa_utf8_decode | ( | const uint8_t * | buffer, |
const size_t | buffer_size ) |
Returns all valid consecutive UTF-8 characters within buffer in the range up to buffer_size or until EOS.
In case a non UTF-8 character has been detected, the content will be cut off and the decoding loop ends.
Method utilizes a finite state machine detecting variable length UTF-8 codes. See Bjoern Hoehrmann's site http://bjoern.hoehrmann.de/utf-8/decoder/dfa/ for details.
Definition at line 31 of file dfa_utf8_decode.cpp.
|
constexpr |
Value access of little-endian type trait for convenience .
Since all endian definitions are of constexpr
, code can simply use expressions of these for compile-time evaluation and optimization. A template SFINAE
is not required.
Dummy_type | just to make template SFINAE happy |
Definition at line 379 of file byte_util.hpp.
|
constexpr |
Value access of big-endian type trait for convenience .
Since all endian definitions are of constexpr
, code can simply use expressions of these for compile-time evaluation and optimization. A template SFINAE
is not required.
Dummy_type | just to make template SFINAE happy |
Definition at line 399 of file byte_util.hpp.