template <class BufferT>

class LittleEndianByteOrderer

Defined at line 729 of file ../../third_party/github.com/google/emboss/src/runtime/cpp/emboss_memory_util.h

LittleEndianByteOrderer is a pass-through adapter for a byte buffer class.

It is used to implement little-endian bit blocks.

When used by BitBlock, the resulting bits are numbered as if they are

little-endian:

bit addresses of each bit in each byte

+----+----+----+----+----+----+----+----+----+----+----+----+----

bit in 7 | 7 | 15 | 23 | 31 | 39 | 47 | 55 | 63 | 71 | 79 | 87 | 95 |

byte 6 | 6 | 14 | 22 | 30 | 38 | 46 | 54 | 62 | 70 | 78 | 86 | 94 |

5 | 5 | 13 | 21 | 29 | 37 | 45 | 53 | 61 | 69 | 77 | 85 | 93 |

4 | 4 | 12 | 20 | 28 | 36 | 44 | 52 | 60 | 68 | 76 | 84 | 92 |

3 | 3 | 11 | 19 | 27 | 35 | 43 | 51 | 59 | 67 | 75 | 83 | 91 | ...

2 | 2 | 10 | 18 | 26 | 34 | 42 | 50 | 58 | 66 | 74 | 82 | 90 |

1 | 1 | 9 | 17 | 25 | 33 | 41 | 49 | 57 | 65 | 73 | 81 | 89 |

0 | 0 | 8 | 16 | 24 | 32 | 40 | 48 | 56 | 64 | 72 | 80 | 88 |

+----+----+----+----+----+----+----+----+----+----+----+----+----

0 1 2 3 4 5 6 7 8 9 10 11 ...

byte address

Because endian-specific reads and writes are handled in ContiguousBuffer,

this class exists mostly to translate VerbUInt calls to VerbLittleEndianUInt.

Public Methods

void LittleEndianByteOrderer<BufferT> ()

Defined at line 734 of file ../../third_party/github.com/google/emboss/src/runtime/cpp/emboss_memory_util.h

void LittleEndianByteOrderer<BufferT> (BufferType buffer)

Defined at line 735 of file ../../third_party/github.com/google/emboss/src/runtime/cpp/emboss_memory_util.h

void LittleEndianByteOrderer<BufferT> (const LittleEndianByteOrderer<BufferT> & other)

Defined at line 736 of file ../../third_party/github.com/google/emboss/src/runtime/cpp/emboss_memory_util.h

void LittleEndianByteOrderer<BufferT> (LittleEndianByteOrderer<BufferT> && other)

Defined at line 737 of file ../../third_party/github.com/google/emboss/src/runtime/cpp/emboss_memory_util.h

LittleEndianByteOrderer<BufferT> & operator= (const LittleEndianByteOrderer<BufferT> & other)

Defined at line 738 of file ../../third_party/github.com/google/emboss/src/runtime/cpp/emboss_memory_util.h

bool Ok ()

LittleEndianByteOrderer just passes straight through to the underlying

buffer.

Defined at line 743 of file ../../third_party/github.com/google/emboss/src/runtime/cpp/emboss_memory_util.h

::std::size_t SizeInBytes ()

Defined at line 744 of file ../../third_party/github.com/google/emboss/src/runtime/cpp/emboss_memory_util.h

template <::std::size_t kBits>
typename LeastWidthInteger<kBits>::Unsigned ReadUInt ()

Defined at line 747 of file ../../third_party/github.com/google/emboss/src/runtime/cpp/emboss_memory_util.h

template <::std::size_t kBits>
typename LeastWidthInteger<kBits>::Unsigned UncheckedReadUInt ()

Defined at line 751 of file ../../third_party/github.com/google/emboss/src/runtime/cpp/emboss_memory_util.h

template <::std::size_t kBits>
void WriteUInt (typename LeastWidthInteger<kBits>::Unsigned value)

Defined at line 755 of file ../../third_party/github.com/google/emboss/src/runtime/cpp/emboss_memory_util.h

template <::std::size_t kBits>
void UncheckedWriteUInt (typename LeastWidthInteger<kBits>::Unsigned value)

Defined at line 759 of file ../../third_party/github.com/google/emboss/src/runtime/cpp/emboss_memory_util.h