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