15 #ifndef SHAKA_EMBEDDED_UTIL_BUFFER_READER_H_ 16 #define SHAKA_EMBEDDED_UTIL_BUFFER_READER_H_ 28 #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ 30 #elif __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ 33 # error "Invalid byte order" 47 const uint8_t*
data()
const {
61 void SetBuffer(
const uint8_t* data,
size_t data_size);
69 size_t Read(uint8_t*
dest,
size_t dest_size);
75 size_t Skip(
size_t count) {
95 return static_cast<uint32_t
>(
ReadBits(32, endianness));
114 const uint8_t* data_;
122 #endif // SHAKA_EMBEDDED_UTIL_BUFFER_READER_H_
size_t Skip(size_t count)
size_t SkipBits(size_t count)
uint32_t ReadUint32(Endianness endianness=kBigEndian)
uint64_t ReadBits(size_t count, Endianness endianness=kBigEndian)
const uint8_t * data() const
void SetBuffer(const uint8_t *data, size_t data_size)
size_t BytesRemaining() const
size_t Read(uint8_t *dest, size_t dest_size)