![]() |
nalchi
|
Bit stream flat API. More...
#include "nalchi/bit_stream.hpp"
#include "nalchi/export.hpp"
#include <cstdint>
Go to the source code of this file.
Functions | |
nalchi::bit_stream_writer * | nalchi_bit_stream_writer_construct_default () |
Constructs a bit_stream_writer instance without a buffer. | |
nalchi::bit_stream_writer * | nalchi_bit_stream_writer_construct_with_shared_payload (nalchi::shared_payload buffer, nalchi::bit_stream_writer::size_type logical_bytes_length) |
Constructs a bit_stream_writer instance with a shared_payload buffer. | |
nalchi::bit_stream_writer * | nalchi_bit_stream_writer_construct_with_word_range (nalchi::bit_stream_writer::word_type *begin, nalchi::bit_stream_writer::word_type *end, nalchi::bit_stream_writer::size_type logical_bytes_length) |
Constructs a bit_stream_writer instance with a word range. | |
nalchi::bit_stream_writer * | nalchi_bit_stream_writer_construct_with_word_ptr_and_length (nalchi::bit_stream_writer::word_type *begin, nalchi::bit_stream_writer::size_type words_length, nalchi::bit_stream_writer::size_type logical_bytes_length) |
Constructs a bit_stream_writer instance with a word begin pointer and the word length. | |
void | nalchi_bit_stream_writer_destroy (nalchi::bit_stream_writer *self) |
Destroys the bit_stream_writer instance. | |
void | nalchi_bit_stream_writer_set_fail (nalchi::bit_stream_writer *self) |
Force set the fail flag. | |
bool | nalchi_bit_stream_writer_fail (const nalchi::bit_stream_writer *self) |
Check if writing to your buffer has been failed or not. | |
auto | nalchi_bit_stream_writer_total_bytes (const nalchi::bit_stream_writer *self) -> nalchi::bit_stream_writer::size_type |
Gets the number of total bytes in the stream. | |
auto | nalchi_bit_stream_writer_total_bits (const nalchi::bit_stream_writer *self) -> nalchi::bit_stream_writer::size_type |
Gets the number of total bits in the stream. | |
auto | nalchi_bit_stream_writer_used_bytes (const nalchi::bit_stream_writer *self) -> nalchi::bit_stream_writer::size_type |
Gets the number of used bytes in the stream. | |
auto | nalchi_bit_stream_writer_used_bits (const nalchi::bit_stream_writer *self) -> nalchi::bit_stream_writer::size_type |
Gets the number of used bits in the stream. | |
auto | nalchi_bit_stream_writer_unused_bytes (const nalchi::bit_stream_writer *self) -> nalchi::bit_stream_writer::size_type |
Gets the number of unused bytes in the stream. | |
auto | nalchi_bit_stream_writer_unused_bits (const nalchi::bit_stream_writer *self) -> nalchi::bit_stream_writer::size_type |
Gets the number of unused bits in the stream. | |
void | nalchi_bit_stream_writer_restart (nalchi::bit_stream_writer *self) |
Restarts the stream so that it can write from the beginning again. | |
void | nalchi_bit_stream_writer_reset (nalchi::bit_stream_writer *self) |
Resets the stream so that it no longer holds your buffer anymore. | |
void | nalchi_bit_stream_writer_reset_with_shared_payload (nalchi::bit_stream_writer *self, nalchi::shared_payload buffer, nalchi::bit_stream_writer::size_type logical_bytes_length) |
Resets the stream with a shared_payload buffer. | |
void | nalchi_bit_stream_writer_reset_with_word_range (nalchi::bit_stream_writer *self, nalchi::bit_stream_writer::word_type *begin, nalchi::bit_stream_writer::word_type *end, nalchi::bit_stream_writer::size_type logical_bytes_length) |
Resets the stream with a word range. | |
void | nalchi_bit_stream_writer_reset_with_word_ptr_and_length (nalchi::bit_stream_writer *self, nalchi::bit_stream_writer::word_type *begin, nalchi::bit_stream_writer::size_type words_length, nalchi::bit_stream_writer::size_type logical_bytes_length) |
Resets the stream with a word begin pointer and the word length. | |
bool | nalchi_bit_stream_writer_flush_final (nalchi::bit_stream_writer *self) |
Flushes the last remaining bytes on the internal scratch buffer to your buffer. | |
bool | nalchi_bit_stream_writer_flushed (const nalchi::bit_stream_writer *self) |
Checks if flush_final() has been called or not. | |
bool | nalchi_bit_stream_writer_write_bytes (nalchi::bit_stream_writer *self, const void *data, nalchi::bit_stream_writer::size_type size) |
Writes some arbitrary data to the bit stream. | |
bool | nalchi_bit_stream_writer_write_bool (nalchi::bit_stream_writer *self, bool data) |
Writes a bool value to the bit stream. | |
bool | nalchi_bit_stream_writer_write_s8 (nalchi::bit_stream_writer *self, std::int8_t data, std::int8_t min, std::int8_t max) |
Writes a std::int8_t value to the bit stream. | |
bool | nalchi_bit_stream_writer_write_u8 (nalchi::bit_stream_writer *self, std::uint8_t data, std::uint8_t min, std::uint8_t max) |
Writes a std::uint8_t value to the bit stream. | |
bool | nalchi_bit_stream_writer_write_s16 (nalchi::bit_stream_writer *self, std::int16_t data, std::int16_t min, std::int16_t max) |
Writes a std::int16_t value to the bit stream. | |
bool | nalchi_bit_stream_writer_write_u16 (nalchi::bit_stream_writer *self, std::uint16_t data, std::uint16_t min, std::uint16_t max) |
Writes a std::uint16_t value to the bit stream. | |
bool | nalchi_bit_stream_writer_write_s32 (nalchi::bit_stream_writer *self, std::int32_t data, std::int32_t min, std::int32_t max) |
Writes a std::int32_t value to the bit stream. | |
bool | nalchi_bit_stream_writer_write_u32 (nalchi::bit_stream_writer *self, std::uint32_t data, std::uint32_t min, std::uint32_t max) |
Writes a std::uint32_t value to the bit stream. | |
bool | nalchi_bit_stream_writer_write_s64 (nalchi::bit_stream_writer *self, std::int64_t data, std::int64_t min, std::int64_t max) |
Writes a std::int64_t value to the bit stream. | |
bool | nalchi_bit_stream_writer_write_u64 (nalchi::bit_stream_writer *self, std::uint64_t data, std::uint64_t min, std::uint64_t max) |
Writes a std::uint64_t value to the bit stream. | |
bool | nalchi_bit_stream_writer_write_float (nalchi::bit_stream_writer *self, float data) |
Writes a float value to the bit stream. | |
bool | nalchi_bit_stream_writer_write_double (nalchi::bit_stream_writer *self, double data) |
Writes a double value to the bit stream. | |
bool | nalchi_bit_stream_writer_write_ordinary_string (nalchi::bit_stream_writer *self, const char *str) |
Writes a null-terminated ordinary string to the bit stream. | |
bool | nalchi_bit_stream_writer_write_wide_string (nalchi::bit_stream_writer *self, const wchar_t *str) |
Writes a null-terminated wide string to the bit stream. | |
bool | nalchi_bit_stream_writer_write_utf8_string (nalchi::bit_stream_writer *self, const char8_t *str) |
Writes a null-terminated UTF-8 string to the bit stream. | |
bool | nalchi_bit_stream_writer_write_utf16_string (nalchi::bit_stream_writer *self, const char16_t *str) |
Writes a null-terminated UTF-16 string to the bit stream. | |
bool | nalchi_bit_stream_writer_write_utf32_string (nalchi::bit_stream_writer *self, const char32_t *str) |
Writes a null-terminated UTF-32 string to the bit stream. | |
nalchi::bit_stream_measurer * | nalchi_bit_stream_measurer_construct () |
Constructs a bit_stream_measurer instance. | |
void | nalchi_bit_stream_measurer_destroy (nalchi::bit_stream_measurer *self) |
Destroys a bit_stream_measurer instance. | |
auto | nalchi_bit_stream_measurer_used_bytes (const nalchi::bit_stream_measurer *self) -> nalchi::bit_stream_measurer::size_type |
Gets the number of used (measured) bytes. | |
auto | nalchi_bit_stream_measurer_used_bits (const nalchi::bit_stream_measurer *self) -> nalchi::bit_stream_measurer::size_type |
Gets the number of used (measured) bits. | |
void | nalchi_bit_stream_measurer_restart (nalchi::bit_stream_measurer *self) |
Restarts the measure from zero. | |
void | nalchi_bit_stream_measurer_write_bytes (nalchi::bit_stream_measurer *self, const void *data, nalchi::bit_stream_measurer::size_type size) |
Fake-writes some arbitrary data to the bit stream. | |
void | nalchi_bit_stream_measurer_write_bool (nalchi::bit_stream_measurer *self, bool data) |
Fake-writes an bool value to the bit stream. | |
void | nalchi_bit_stream_measurer_write_s8 (nalchi::bit_stream_measurer *self, std::int8_t data, std::int8_t min, std::int8_t max) |
Fake-writes a std::int8_t value to the bit stream. | |
void | nalchi_bit_stream_measurer_write_u8 (nalchi::bit_stream_measurer *self, std::uint8_t data, std::uint8_t min, std::uint8_t max) |
Fake-writes a std::uint8_t value to the bit stream. | |
void | nalchi_bit_stream_measurer_write_s16 (nalchi::bit_stream_measurer *self, std::int16_t data, std::int16_t min, std::int16_t max) |
Fake-writes a std::int16_t value to the bit stream. | |
void | nalchi_bit_stream_measurer_write_u16 (nalchi::bit_stream_measurer *self, std::uint16_t data, std::uint16_t min, std::uint16_t max) |
Fake-writes a std::uint16_t value to the bit stream. | |
void | nalchi_bit_stream_measurer_write_s32 (nalchi::bit_stream_measurer *self, std::int32_t data, std::int32_t min, std::int32_t max) |
Fake-writes a std::int32_t value to the bit stream. | |
void | nalchi_bit_stream_measurer_write_u32 (nalchi::bit_stream_measurer *self, std::uint32_t data, std::uint32_t min, std::uint32_t max) |
Fake-writes a std::uint32_t value to the bit stream. | |
void | nalchi_bit_stream_measurer_write_s64 (nalchi::bit_stream_measurer *self, std::int64_t data, std::int64_t min, std::int64_t max) |
Fake-writes a std::int64_t value to the bit stream. | |
void | nalchi_bit_stream_measurer_write_u64 (nalchi::bit_stream_measurer *self, std::uint64_t data, std::uint64_t min, std::uint64_t max) |
Fake-writes a std::uint64_t value to the bit stream. | |
void | nalchi_bit_stream_measurer_write_float (nalchi::bit_stream_measurer *self, float data) |
Fake-writes a float value to the bit stream. | |
void | nalchi_bit_stream_measurer_write_double (nalchi::bit_stream_measurer *self, double data) |
Fake-writes a double value to the bit stream. | |
void | nalchi_bit_stream_measurer_write_ordinary_string (nalchi::bit_stream_measurer *self, const char *str) |
Fake-writes a null-terminated ordinary string to the bit stream. | |
void | nalchi_bit_stream_measurer_write_wide_string (nalchi::bit_stream_measurer *self, const wchar_t *str) |
Fake-writes a null-terminated wide string to the bit stream. | |
void | nalchi_bit_stream_measurer_write_utf8_string (nalchi::bit_stream_measurer *self, const char8_t *str) |
Fake-writes a null-terminated UTF-8 string to the bit stream. | |
void | nalchi_bit_stream_measurer_write_utf16_string (nalchi::bit_stream_measurer *self, const char16_t *str) |
Fake-writes a null-terminated UTF-16 string to the bit stream. | |
void | nalchi_bit_stream_measurer_write_utf32_string (nalchi::bit_stream_measurer *self, const char32_t *str) |
Fake-writes a null-terminated UTF-32 string to the bit stream. | |
nalchi::bit_stream_reader * | nalchi_bit_stream_reader_construct_default () |
Constructs a bit_stream_reader instance without a buffer. | |
nalchi::bit_stream_reader * | nalchi_bit_stream_reader_construct_with_word_range (const nalchi::bit_stream_reader::word_type *begin, const nalchi::bit_stream_reader::word_type *end, nalchi::bit_stream_reader::size_type logical_bytes_length) |
Constructs a bit_stream_reader instance with a word range. | |
nalchi::bit_stream_reader * | nalchi_bit_stream_reader_construct_with_word_ptr_and_length (const nalchi::bit_stream_reader::word_type *begin, nalchi::bit_stream_reader::size_type words_length, nalchi::bit_stream_reader::size_type logical_bytes_length) |
Constructs a bit_stream_reader instance with a word begin pointer and the word length. | |
void | nalchi_bit_stream_reader_destroy (nalchi::bit_stream_reader *self) |
Destroys the bit_stream_reader instance. | |
void | nalchi_bit_stream_reader_set_fail (nalchi::bit_stream_reader *self) |
Force set the fail flag. | |
bool | nalchi_bit_stream_reader_fail (const nalchi::bit_stream_reader *self) |
Check if reading from your buffer has been failed or not. | |
auto | nalchi_bit_stream_reader_total_bytes (const nalchi::bit_stream_reader *self) -> nalchi::bit_stream_reader::size_type |
Gets the number of total bytes in the stream. | |
auto | nalchi_bit_stream_reader_total_bits (const nalchi::bit_stream_reader *self) -> nalchi::bit_stream_reader::size_type |
Gets the number of total bits in the stream. | |
auto | nalchi_bit_stream_reader_used_bytes (const nalchi::bit_stream_reader *self) -> nalchi::bit_stream_reader::size_type |
Gets the number of used bytes in the stream. | |
auto | nalchi_bit_stream_reader_used_bits (const nalchi::bit_stream_reader *self) -> nalchi::bit_stream_reader::size_type |
Gets the number of used bits in the stream. | |
auto | nalchi_bit_stream_reader_unused_bytes (const nalchi::bit_stream_reader *self) -> nalchi::bit_stream_reader::size_type |
Gets the number of unused bytes in the stream. | |
auto | nalchi_bit_stream_reader_unused_bits (const nalchi::bit_stream_reader *self) -> nalchi::bit_stream_reader::size_type |
Gets the number of unused bits in the stream. | |
void | nalchi_bit_stream_reader_restart (nalchi::bit_stream_reader *self) |
Restarts the stream so that it can read from the beginning again. | |
void | nalchi_bit_stream_reader_reset (nalchi::bit_stream_reader *self) |
Resets the stream so that it no longer holds your buffer anymore. | |
void | nalchi_bit_stream_reader_reset_with_word_range (nalchi::bit_stream_reader *self, const nalchi::bit_stream_reader::word_type *begin, const nalchi::bit_stream_reader::word_type *end, nalchi::bit_stream_reader::size_type logical_bytes_length) |
Resets the stream with a word range. | |
void | nalchi_bit_stream_reader_reset_with_word_ptr_and_length (nalchi::bit_stream_reader *self, const nalchi::bit_stream_reader::word_type *begin, nalchi::bit_stream_reader::size_type words_length, nalchi::bit_stream_reader::size_type logical_bytes_length) |
Resets the stream with a word begin pointer and the word length. | |
bool | nalchi_bit_stream_reader_read_bytes (nalchi::bit_stream_reader *self, void *data, nalchi::bit_stream_reader::size_type size) |
Reads some arbitrary data from the bit stream. | |
bool | nalchi_bit_stream_reader_read_bool (nalchi::bit_stream_reader *self, bool *data) |
Reads a bool value from the bit stream. | |
bool | nalchi_bit_stream_reader_read_s8 (nalchi::bit_stream_reader *self, std::int8_t *data, std::int8_t min, std::int8_t max) |
Reads a std::int8_t value from the bit stream. | |
bool | nalchi_bit_stream_reader_read_u8 (nalchi::bit_stream_reader *self, std::uint8_t *data, std::uint8_t min, std::uint8_t max) |
Reads a std::uint8_t value from the bit stream. | |
bool | nalchi_bit_stream_reader_read_s16 (nalchi::bit_stream_reader *self, std::int16_t *data, std::int16_t min, std::int16_t max) |
Reads a std::int16_t value from the bit stream. | |
bool | nalchi_bit_stream_reader_read_u16 (nalchi::bit_stream_reader *self, std::uint16_t *data, std::uint16_t min, std::uint16_t max) |
Reads a std::uint16_t value from the bit stream. | |
bool | nalchi_bit_stream_reader_read_s32 (nalchi::bit_stream_reader *self, std::int32_t *data, std::int32_t min, std::int32_t max) |
Reads a std::int32_t value from the bit stream. | |
bool | nalchi_bit_stream_reader_read_u32 (nalchi::bit_stream_reader *self, std::uint32_t *data, std::uint32_t min, std::uint32_t max) |
Reads a std::uint32_t value from the bit stream. | |
bool | nalchi_bit_stream_reader_read_s64 (nalchi::bit_stream_reader *self, std::int64_t *data, std::int64_t min, std::int64_t max) |
Reads a std::int64_t value from the bit stream. | |
bool | nalchi_bit_stream_reader_read_u64 (nalchi::bit_stream_reader *self, std::uint64_t *data, std::uint64_t min, std::uint64_t max) |
Reads a std::uint64_t value from the bit stream. | |
bool | nalchi_bit_stream_reader_read_float (nalchi::bit_stream_reader *self, float *data) |
Reads a float value from the bit stream. | |
bool | nalchi_bit_stream_reader_read_double (nalchi::bit_stream_reader *self, double *data) |
Reads a double value from the bit stream. | |
bool | nalchi_bit_stream_reader_read_ordinary_string (nalchi::bit_stream_reader *self, char *str, nalchi::bit_stream_reader::size_type max_length) |
Reads a null-terminated ordinary string from the bit stream. | |
bool | nalchi_bit_stream_reader_read_wide_string (nalchi::bit_stream_reader *self, wchar_t *str, nalchi::bit_stream_reader::size_type max_length) |
Reads a null-terminated wide string from the bit stream. | |
bool | nalchi_bit_stream_reader_read_utf8_string (nalchi::bit_stream_reader *self, char8_t *str, nalchi::bit_stream_reader::size_type max_length) |
Reads a null-terminated UTF-8 string from the bit stream. | |
bool | nalchi_bit_stream_reader_read_utf16_string (nalchi::bit_stream_reader *self, char16_t *str, nalchi::bit_stream_reader::size_type max_length) |
Reads a null-terminated UTF-16 string from the bit stream. | |
bool | nalchi_bit_stream_reader_read_utf32_string (nalchi::bit_stream_reader *self, char32_t *str, nalchi::bit_stream_reader::size_type max_length) |
Reads a null-terminated UTF-32 string from the bit stream. | |
auto | nalchi_bit_stream_reader_peek_string_length (nalchi::bit_stream_reader *self) -> nalchi::bit_stream_reader::ssize_type |
Peeks the string length prefix from the current stream position. | |
Bit stream flat API.
auto nalchi_bit_stream_measurer_used_bits | ( | const nalchi::bit_stream_measurer * | self | ) | -> nalchi::bit_stream_measurer::size_type |
Gets the number of used (measured) bits.
auto nalchi_bit_stream_measurer_used_bytes | ( | const nalchi::bit_stream_measurer * | self | ) | -> nalchi::bit_stream_measurer::size_type |
Gets the number of used (measured) bytes.
void nalchi_bit_stream_measurer_write_bool | ( | nalchi::bit_stream_measurer * | self, |
bool | data ) |
Fake-writes an bool value to the bit stream.
data | Data to fake-write. |
min | Minimum value allowed for data . |
max | Maximum value allowed for data . |
void nalchi_bit_stream_measurer_write_bytes | ( | nalchi::bit_stream_measurer * | self, |
const void * | data, | ||
nalchi::bit_stream_measurer::size_type | size ) |
Fake-writes some arbitrary data to the bit stream.
data | Pointer to the arbitrary data. |
size | Size in bytes of the data. |
void nalchi_bit_stream_measurer_write_double | ( | nalchi::bit_stream_measurer * | self, |
double | data ) |
Fake-writes a double value to the bit stream.
data | Data to fake-write. |
void nalchi_bit_stream_measurer_write_float | ( | nalchi::bit_stream_measurer * | self, |
float | data ) |
Fake-writes a float value to the bit stream.
data | Data to fake-write. |
void nalchi_bit_stream_measurer_write_ordinary_string | ( | nalchi::bit_stream_measurer * | self, |
const char * | str ) |
Fake-writes a null-terminated ordinary string to the bit stream.
str | String to fake-write. |
void nalchi_bit_stream_measurer_write_s16 | ( | nalchi::bit_stream_measurer * | self, |
std::int16_t | data, | ||
std::int16_t | min, | ||
std::int16_t | max ) |
Fake-writes a std::int16_t
value to the bit stream.
data | Data to fake-write. |
min | Minimum value allowed for data . |
max | Maximum value allowed for data . |
void nalchi_bit_stream_measurer_write_s32 | ( | nalchi::bit_stream_measurer * | self, |
std::int32_t | data, | ||
std::int32_t | min, | ||
std::int32_t | max ) |
Fake-writes a std::int32_t
value to the bit stream.
data | Data to fake-write. |
min | Minimum value allowed for data . |
max | Maximum value allowed for data . |
void nalchi_bit_stream_measurer_write_s64 | ( | nalchi::bit_stream_measurer * | self, |
std::int64_t | data, | ||
std::int64_t | min, | ||
std::int64_t | max ) |
Fake-writes a std::int64_t
value to the bit stream.
data | Data to fake-write. |
min | Minimum value allowed for data . |
max | Maximum value allowed for data . |
void nalchi_bit_stream_measurer_write_s8 | ( | nalchi::bit_stream_measurer * | self, |
std::int8_t | data, | ||
std::int8_t | min, | ||
std::int8_t | max ) |
Fake-writes a std::int8_t
value to the bit stream.
data | Data to fake-write. |
min | Minimum value allowed for data . |
max | Maximum value allowed for data . |
void nalchi_bit_stream_measurer_write_u16 | ( | nalchi::bit_stream_measurer * | self, |
std::uint16_t | data, | ||
std::uint16_t | min, | ||
std::uint16_t | max ) |
Fake-writes a std::uint16_t
value to the bit stream.
data | Data to fake-write. |
min | Minimum value allowed for data . |
max | Maximum value allowed for data . |
void nalchi_bit_stream_measurer_write_u32 | ( | nalchi::bit_stream_measurer * | self, |
std::uint32_t | data, | ||
std::uint32_t | min, | ||
std::uint32_t | max ) |
Fake-writes a std::uint32_t
value to the bit stream.
data | Data to fake-write. |
min | Minimum value allowed for data . |
max | Maximum value allowed for data . |
void nalchi_bit_stream_measurer_write_u64 | ( | nalchi::bit_stream_measurer * | self, |
std::uint64_t | data, | ||
std::uint64_t | min, | ||
std::uint64_t | max ) |
Fake-writes a std::uint64_t
value to the bit stream.
data | Data to fake-write. |
min | Minimum value allowed for data . |
max | Maximum value allowed for data . |
void nalchi_bit_stream_measurer_write_u8 | ( | nalchi::bit_stream_measurer * | self, |
std::uint8_t | data, | ||
std::uint8_t | min, | ||
std::uint8_t | max ) |
Fake-writes a std::uint8_t
value to the bit stream.
data | Data to fake-write. |
min | Minimum value allowed for data . |
max | Maximum value allowed for data . |
void nalchi_bit_stream_measurer_write_utf16_string | ( | nalchi::bit_stream_measurer * | self, |
const char16_t * | str ) |
Fake-writes a null-terminated UTF-16 string to the bit stream.
str | String to fake-write. |
void nalchi_bit_stream_measurer_write_utf32_string | ( | nalchi::bit_stream_measurer * | self, |
const char32_t * | str ) |
Fake-writes a null-terminated UTF-32 string to the bit stream.
str | String to fake-write. |
void nalchi_bit_stream_measurer_write_utf8_string | ( | nalchi::bit_stream_measurer * | self, |
const char8_t * | str ) |
Fake-writes a null-terminated UTF-8 string to the bit stream.
str | String to fake-write. |
void nalchi_bit_stream_measurer_write_wide_string | ( | nalchi::bit_stream_measurer * | self, |
const wchar_t * | str ) |
Fake-writes a null-terminated wide string to the bit stream.
str | String to fake-write. |
nalchi::bit_stream_reader * nalchi_bit_stream_reader_construct_default | ( | ) |
Constructs a bit_stream_reader
instance without a buffer.
This constructor can be useful if you want to set the buffer afterwards.
To set the buffer, call reset_with()
.
nalchi::bit_stream_reader * nalchi_bit_stream_reader_construct_with_word_ptr_and_length | ( | const nalchi::bit_stream_reader::word_type * | begin, |
nalchi::bit_stream_reader::size_type | words_length, | ||
nalchi::bit_stream_reader::size_type | logical_bytes_length ) |
Constructs a bit_stream_reader
instance with a word begin pointer and the word length.
begin | Pointer to the beginning of a buffer. |
words_length | Number of words in the buffer. |
logical_bytes_length | Number of bytes logically. This is useful if you want to only allow partial read from the final word. |
nalchi::bit_stream_reader * nalchi_bit_stream_reader_construct_with_word_range | ( | const nalchi::bit_stream_reader::word_type * | begin, |
const nalchi::bit_stream_reader::word_type * | end, | ||
nalchi::bit_stream_reader::size_type | logical_bytes_length ) |
Constructs a bit_stream_reader
instance with a word range.
begin | Pointer to the beginning of a buffer. |
end | Pointer to the end of a buffer. |
logical_bytes_length | Number of bytes logically. This is useful if you want to only allow partial read from the final word. |
bool nalchi_bit_stream_reader_fail | ( | const nalchi::bit_stream_reader * | self | ) |
Check if reading from your buffer has been failed or not.
If this is true
, all the operations for this bit_stream_reader
is no-op.
true
if reading has been failed, otherwise false
. auto nalchi_bit_stream_reader_peek_string_length | ( | nalchi::bit_stream_reader * | self | ) | -> nalchi::bit_stream_reader::ssize_type |
Peeks the string length prefix from the current stream position.
If it fails to read a string length prefix,
this function will return a negative value and set the fail flag.
CharT
stored in it, or a negative value if length prefix is invalid. bool nalchi_bit_stream_reader_read_bool | ( | nalchi::bit_stream_reader * | self, |
bool * | data ) |
Reads a bool value from the bit stream.
data | Data to read to. |
true
if reading has been successful, otherwise false
. bool nalchi_bit_stream_reader_read_bytes | ( | nalchi::bit_stream_reader * | self, |
void * | data, | ||
nalchi::bit_stream_reader::size_type | size ) |
Reads some arbitrary data from the bit stream.
data | Pointer to the arbitrary data. |
size | Size in bytes of the data. |
true
if reading has been successful, otherwise false
. bool nalchi_bit_stream_reader_read_double | ( | nalchi::bit_stream_reader * | self, |
double * | data ) |
Reads a double value from the bit stream.
data | Data to read to. |
true
if reading has been successful, otherwise false
. bool nalchi_bit_stream_reader_read_float | ( | nalchi::bit_stream_reader * | self, |
float * | data ) |
Reads a float value from the bit stream.
data | Data to read to. |
true
if reading has been successful, otherwise false
. bool nalchi_bit_stream_reader_read_ordinary_string | ( | nalchi::bit_stream_reader * | self, |
char * | str, | ||
nalchi::bit_stream_reader::size_type | max_length ) |
Reads a null-terminated ordinary string from the bit stream.
If max_length
is not enough to store the string,
this function will set the fail flag and read nothing.
max_length
does not include null character, so your buffer must allocate additional space for it.For example, if max_length
is 4 for char
, you need 5 bytes.
Because you need space for 5 char
including null char, and char
is 1 byte per char.
str | Null-terminated string to read to. |
max_length | Maximum number of char that can be read. |
true
if reading has been successful, otherwise false
. bool nalchi_bit_stream_reader_read_s16 | ( | nalchi::bit_stream_reader * | self, |
std::int16_t * | data, | ||
std::int16_t | min, | ||
std::int16_t | max ) |
Reads a std::int16_t
value from the bit stream.
data | Data to read to. |
min | Minimum value allowed for data . |
max | Maximum value allowed for data . |
true
if reading has been successful, otherwise false
. bool nalchi_bit_stream_reader_read_s32 | ( | nalchi::bit_stream_reader * | self, |
std::int32_t * | data, | ||
std::int32_t | min, | ||
std::int32_t | max ) |
Reads a std::int32_t
value from the bit stream.
data | Data to read to. |
min | Minimum value allowed for data . |
max | Maximum value allowed for data . |
true
if reading has been successful, otherwise false
. bool nalchi_bit_stream_reader_read_s64 | ( | nalchi::bit_stream_reader * | self, |
std::int64_t * | data, | ||
std::int64_t | min, | ||
std::int64_t | max ) |
Reads a std::int64_t
value from the bit stream.
data | Data to read to. |
min | Minimum value allowed for data . |
max | Maximum value allowed for data . |
true
if reading has been successful, otherwise false
. bool nalchi_bit_stream_reader_read_s8 | ( | nalchi::bit_stream_reader * | self, |
std::int8_t * | data, | ||
std::int8_t | min, | ||
std::int8_t | max ) |
Reads a std::int8_t
value from the bit stream.
data | Data to read to. |
min | Minimum value allowed for data . |
max | Maximum value allowed for data . |
true
if reading has been successful, otherwise false
. bool nalchi_bit_stream_reader_read_u16 | ( | nalchi::bit_stream_reader * | self, |
std::uint16_t * | data, | ||
std::uint16_t | min, | ||
std::uint16_t | max ) |
Reads a std::uint16_t
value from the bit stream.
data | Data to read to. |
min | Minimum value allowed for data . |
max | Maximum value allowed for data . |
true
if reading has been successful, otherwise false
. bool nalchi_bit_stream_reader_read_u32 | ( | nalchi::bit_stream_reader * | self, |
std::uint32_t * | data, | ||
std::uint32_t | min, | ||
std::uint32_t | max ) |
Reads a std::uint32_t
value from the bit stream.
data | Data to read to. |
min | Minimum value allowed for data . |
max | Maximum value allowed for data . |
true
if reading has been successful, otherwise false
. bool nalchi_bit_stream_reader_read_u64 | ( | nalchi::bit_stream_reader * | self, |
std::uint64_t * | data, | ||
std::uint64_t | min, | ||
std::uint64_t | max ) |
Reads a std::uint64_t
value from the bit stream.
data | Data to read to. |
min | Minimum value allowed for data . |
max | Maximum value allowed for data . |
true
if reading has been successful, otherwise false
. bool nalchi_bit_stream_reader_read_u8 | ( | nalchi::bit_stream_reader * | self, |
std::uint8_t * | data, | ||
std::uint8_t | min, | ||
std::uint8_t | max ) |
Reads a std::uint8_t
value from the bit stream.
data | Data to read to. |
min | Minimum value allowed for data . |
max | Maximum value allowed for data . |
true
if reading has been successful, otherwise false
. bool nalchi_bit_stream_reader_read_utf16_string | ( | nalchi::bit_stream_reader * | self, |
char16_t * | str, | ||
nalchi::bit_stream_reader::size_type | max_length ) |
Reads a null-terminated UTF-16 string from the bit stream.
If max_length
is not enough to store the string,
this function will set the fail flag and read nothing.
max_length
does not include null character, so your buffer must allocate additional space for it.For example, if max_length
is 4 for char16_t
, you need 10 bytes.
Because you need space for 5 char16_t
including null char, and char16_t
is 2 bytes per char.
str | Null-terminated string to read to. |
max_length | Maximum number of char16_t that can be read. |
true
if reading has been successful, otherwise false
. bool nalchi_bit_stream_reader_read_utf32_string | ( | nalchi::bit_stream_reader * | self, |
char32_t * | str, | ||
nalchi::bit_stream_reader::size_type | max_length ) |
Reads a null-terminated UTF-32 string from the bit stream.
If max_length
is not enough to store the string,
this function will set the fail flag and read nothing.
max_length
does not include null character, so your buffer must allocate additional space for it.For example, if max_length
is 4 for char32_t
, you need 20 bytes.
Because you need space for 5 char32_t
including null char, and char32_t
is 4 bytes per char.
str | Null-terminated string to read to. |
max_length | Maximum number of char32_t that can be read. |
true
if reading has been successful, otherwise false
. bool nalchi_bit_stream_reader_read_utf8_string | ( | nalchi::bit_stream_reader * | self, |
char8_t * | str, | ||
nalchi::bit_stream_reader::size_type | max_length ) |
Reads a null-terminated UTF-8 string from the bit stream.
If max_length
is not enough to store the string,
this function will set the fail flag and read nothing.
max_length
does not include null character, so your buffer must allocate additional space for it.For example, if max_length
is 4 for char8_t
, you need 5 bytes.
Because you need space for 5 char8_t
including null char, and char8_t
is 1 byte per char.
str | Null-terminated string to read to. |
max_length | Maximum number of char8_t that can be read. |
true
if reading has been successful, otherwise false
. bool nalchi_bit_stream_reader_read_wide_string | ( | nalchi::bit_stream_reader * | self, |
wchar_t * | str, | ||
nalchi::bit_stream_reader::size_type | max_length ) |
Reads a null-terminated wide string from the bit stream.
If max_length
is not enough to store the string,
this function will set the fail flag and read nothing.
max_length
does not include null character, so your buffer must allocate additional space for it.For example, if max_length
is 4 for char16_t
, you need 10 bytes.
Because you need space for 5 char16_t
including null char, and char16_t
is 2 bytes per char.
str | Null-terminated string to read to. |
max_length | Maximum number of wchar_t that can be read. |
true
if reading has been successful, otherwise false
. void nalchi_bit_stream_reader_reset_with_word_ptr_and_length | ( | nalchi::bit_stream_reader * | self, |
const nalchi::bit_stream_reader::word_type * | begin, | ||
nalchi::bit_stream_reader::size_type | words_length, | ||
nalchi::bit_stream_reader::size_type | logical_bytes_length ) |
Resets the stream with a word begin pointer and the word length.
begin | Pointer to the beginning of a buffer. |
words_length | Number of words in the buffer. |
logical_bytes_length | Number of bytes logically. This is useful if you want to only allow partial read from the final word. |
void nalchi_bit_stream_reader_reset_with_word_range | ( | nalchi::bit_stream_reader * | self, |
const nalchi::bit_stream_reader::word_type * | begin, | ||
const nalchi::bit_stream_reader::word_type * | end, | ||
nalchi::bit_stream_reader::size_type | logical_bytes_length ) |
Resets the stream with a word range.
begin | Pointer to the beginning of a buffer. |
end | Pointer to the end of a buffer. |
logical_bytes_length | Number of bytes logically. This is useful if you want to only allow partial read from the final word. |
auto nalchi_bit_stream_reader_total_bits | ( | const nalchi::bit_stream_reader * | self | ) | -> nalchi::bit_stream_reader::size_type |
Gets the number of total bits in the stream.
auto nalchi_bit_stream_reader_total_bytes | ( | const nalchi::bit_stream_reader * | self | ) | -> nalchi::bit_stream_reader::size_type |
Gets the number of total bytes in the stream.
auto nalchi_bit_stream_reader_unused_bits | ( | const nalchi::bit_stream_reader * | self | ) | -> nalchi::bit_stream_reader::size_type |
Gets the number of unused bits in the stream.
auto nalchi_bit_stream_reader_unused_bytes | ( | const nalchi::bit_stream_reader * | self | ) | -> nalchi::bit_stream_reader::size_type |
Gets the number of unused bytes in the stream.
auto nalchi_bit_stream_reader_used_bits | ( | const nalchi::bit_stream_reader * | self | ) | -> nalchi::bit_stream_reader::size_type |
Gets the number of used bits in the stream.
auto nalchi_bit_stream_reader_used_bytes | ( | const nalchi::bit_stream_reader * | self | ) | -> nalchi::bit_stream_reader::size_type |
Gets the number of used bytes in the stream.
nalchi::bit_stream_writer * nalchi_bit_stream_writer_construct_default | ( | ) |
Constructs a bit_stream_writer
instance without a buffer.
This constructor can be useful if you want to set the buffer afterwards.
To set the buffer, call reset_with()
.
nalchi::bit_stream_writer * nalchi_bit_stream_writer_construct_with_shared_payload | ( | nalchi::shared_payload | buffer, |
nalchi::bit_stream_writer::size_type | logical_bytes_length ) |
Constructs a bit_stream_writer
instance with a shared_payload
buffer.
buffer | Buffer to write bits to. |
logical_bytes_length | Number of bytes logically. This is useful if you want to only allow partial write to the final word. |
nalchi::bit_stream_writer * nalchi_bit_stream_writer_construct_with_word_ptr_and_length | ( | nalchi::bit_stream_writer::word_type * | begin, |
nalchi::bit_stream_writer::size_type | words_length, | ||
nalchi::bit_stream_writer::size_type | logical_bytes_length ) |
Constructs a bit_stream_writer
instance with a word begin pointer and the word length.
begin | Pointer to the beginning of a buffer. |
words_length | Number of words in the buffer. |
logical_bytes_length | Number of bytes logically. This is useful if you want to only allow partial write to the final word. |
nalchi::bit_stream_writer * nalchi_bit_stream_writer_construct_with_word_range | ( | nalchi::bit_stream_writer::word_type * | begin, |
nalchi::bit_stream_writer::word_type * | end, | ||
nalchi::bit_stream_writer::size_type | logical_bytes_length ) |
Constructs a bit_stream_writer
instance with a word range.
begin | Pointer to the beginning of a buffer. |
end | Pointer to the end of a buffer. |
logical_bytes_length | Number of bytes logically. This is useful if you want to only allow partial write to the final word. |
bool nalchi_bit_stream_writer_fail | ( | const nalchi::bit_stream_writer * | self | ) |
Check if writing to your buffer has been failed or not.
If this is true
, all the operations for this bit_stream_writer
is no-op.
true
if writing has been failed, otherwise false
. bool nalchi_bit_stream_writer_flush_final | ( | nalchi::bit_stream_writer * | self | ) |
Flushes the last remaining bytes on the internal scratch buffer to your buffer.
true
if writing has been successful, otherwise false
. bool nalchi_bit_stream_writer_flushed | ( | const nalchi::bit_stream_writer * | self | ) |
Checks if flush_final()
has been called or not.
flush_final()
has been called or not. void nalchi_bit_stream_writer_reset | ( | nalchi::bit_stream_writer * | self | ) |
Resets the stream so that it no longer holds your buffer anymore.
flush_final()
beforehand. void nalchi_bit_stream_writer_reset_with_shared_payload | ( | nalchi::bit_stream_writer * | self, |
nalchi::shared_payload | buffer, | ||
nalchi::bit_stream_writer::size_type | logical_bytes_length ) |
Resets the stream with a shared_payload
buffer.
flush_final()
beforehand. buffer | Buffer to write bits to. |
logical_bytes_length | Number of bytes logically. This is useful if you want to only allow partial write to the final word. |
void nalchi_bit_stream_writer_reset_with_word_ptr_and_length | ( | nalchi::bit_stream_writer * | self, |
nalchi::bit_stream_writer::word_type * | begin, | ||
nalchi::bit_stream_writer::size_type | words_length, | ||
nalchi::bit_stream_writer::size_type | logical_bytes_length ) |
Resets the stream with a word begin pointer and the word length.
flush_final()
beforehand. begin | Pointer to the beginning of a buffer. |
words_length | Number of words in the buffer. |
logical_bytes_length | Number of bytes logically. This is useful if you want to only allow partial write to the final word. |
void nalchi_bit_stream_writer_reset_with_word_range | ( | nalchi::bit_stream_writer * | self, |
nalchi::bit_stream_writer::word_type * | begin, | ||
nalchi::bit_stream_writer::word_type * | end, | ||
nalchi::bit_stream_writer::size_type | logical_bytes_length ) |
Resets the stream with a word range.
flush_final()
beforehand. begin | Pointer to the beginning of a buffer. |
end | Pointer to the end of a buffer. |
logical_bytes_length | Number of bytes logically. This is useful if you want to only allow partial write to the final word. |
void nalchi_bit_stream_writer_restart | ( | nalchi::bit_stream_writer * | self | ) |
Restarts the stream so that it can write from the beginning again.
flush_final()
beforehand. auto nalchi_bit_stream_writer_total_bits | ( | const nalchi::bit_stream_writer * | self | ) | -> nalchi::bit_stream_writer::size_type |
Gets the number of total bits in the stream.
auto nalchi_bit_stream_writer_total_bytes | ( | const nalchi::bit_stream_writer * | self | ) | -> nalchi::bit_stream_writer::size_type |
Gets the number of total bytes in the stream.
auto nalchi_bit_stream_writer_unused_bits | ( | const nalchi::bit_stream_writer * | self | ) | -> nalchi::bit_stream_writer::size_type |
Gets the number of unused bits in the stream.
auto nalchi_bit_stream_writer_unused_bytes | ( | const nalchi::bit_stream_writer * | self | ) | -> nalchi::bit_stream_writer::size_type |
Gets the number of unused bytes in the stream.
auto nalchi_bit_stream_writer_used_bits | ( | const nalchi::bit_stream_writer * | self | ) | -> nalchi::bit_stream_writer::size_type |
Gets the number of used bits in the stream.
auto nalchi_bit_stream_writer_used_bytes | ( | const nalchi::bit_stream_writer * | self | ) | -> nalchi::bit_stream_writer::size_type |
Gets the number of used bytes in the stream.
bool nalchi_bit_stream_writer_write_bool | ( | nalchi::bit_stream_writer * | self, |
bool | data ) |
Writes a bool value to the bit stream.
data | Data to write. |
true
if writing has been successful, otherwise false
. bool nalchi_bit_stream_writer_write_bytes | ( | nalchi::bit_stream_writer * | self, |
const void * | data, | ||
nalchi::bit_stream_writer::size_type | size ) |
Writes some arbitrary data to the bit stream.
data | Pointer to the arbitrary data. |
size | Size in bytes of the data. |
true
if writing has been successful, otherwise false
. bool nalchi_bit_stream_writer_write_double | ( | nalchi::bit_stream_writer * | self, |
double | data ) |
Writes a double value to the bit stream.
data | Data to write. |
true
if writing has been successful, otherwise false
. bool nalchi_bit_stream_writer_write_float | ( | nalchi::bit_stream_writer * | self, |
float | data ) |
Writes a float value to the bit stream.
data | Data to write. |
true
if writing has been successful, otherwise false
. bool nalchi_bit_stream_writer_write_ordinary_string | ( | nalchi::bit_stream_writer * | self, |
const char * | str ) |
Writes a null-terminated ordinary string to the bit stream.
str | String to write. |
true
if writing has been successful, otherwise false
. bool nalchi_bit_stream_writer_write_s16 | ( | nalchi::bit_stream_writer * | self, |
std::int16_t | data, | ||
std::int16_t | min, | ||
std::int16_t | max ) |
Writes a std::int16_t
value to the bit stream.
data | Data to write. |
min | Minimum value allowed for data . |
max | Maximum value allowed for data . |
true
if writing has been successful, otherwise false
. bool nalchi_bit_stream_writer_write_s32 | ( | nalchi::bit_stream_writer * | self, |
std::int32_t | data, | ||
std::int32_t | min, | ||
std::int32_t | max ) |
Writes a std::int32_t
value to the bit stream.
data | Data to write. |
min | Minimum value allowed for data . |
max | Maximum value allowed for data . |
true
if writing has been successful, otherwise false
. bool nalchi_bit_stream_writer_write_s64 | ( | nalchi::bit_stream_writer * | self, |
std::int64_t | data, | ||
std::int64_t | min, | ||
std::int64_t | max ) |
Writes a std::int64_t
value to the bit stream.
data | Data to write. |
min | Minimum value allowed for data . |
max | Maximum value allowed for data . |
true
if writing has been successful, otherwise false
. bool nalchi_bit_stream_writer_write_s8 | ( | nalchi::bit_stream_writer * | self, |
std::int8_t | data, | ||
std::int8_t | min, | ||
std::int8_t | max ) |
Writes a std::int8_t
value to the bit stream.
data | Data to write. |
min | Minimum value allowed for data . |
max | Maximum value allowed for data . |
true
if writing has been successful, otherwise false
. bool nalchi_bit_stream_writer_write_u16 | ( | nalchi::bit_stream_writer * | self, |
std::uint16_t | data, | ||
std::uint16_t | min, | ||
std::uint16_t | max ) |
Writes a std::uint16_t
value to the bit stream.
data | Data to write. |
min | Minimum value allowed for data . |
max | Maximum value allowed for data . |
true
if writing has been successful, otherwise false
. bool nalchi_bit_stream_writer_write_u32 | ( | nalchi::bit_stream_writer * | self, |
std::uint32_t | data, | ||
std::uint32_t | min, | ||
std::uint32_t | max ) |
Writes a std::uint32_t
value to the bit stream.
data | Data to write. |
min | Minimum value allowed for data . |
max | Maximum value allowed for data . |
true
if writing has been successful, otherwise false
. bool nalchi_bit_stream_writer_write_u64 | ( | nalchi::bit_stream_writer * | self, |
std::uint64_t | data, | ||
std::uint64_t | min, | ||
std::uint64_t | max ) |
Writes a std::uint64_t
value to the bit stream.
data | Data to write. |
min | Minimum value allowed for data . |
max | Maximum value allowed for data . |
true
if writing has been successful, otherwise false
. bool nalchi_bit_stream_writer_write_u8 | ( | nalchi::bit_stream_writer * | self, |
std::uint8_t | data, | ||
std::uint8_t | min, | ||
std::uint8_t | max ) |
Writes a std::uint8_t
value to the bit stream.
data | Data to write. |
min | Minimum value allowed for data . |
max | Maximum value allowed for data . |
true
if writing has been successful, otherwise false
. bool nalchi_bit_stream_writer_write_utf16_string | ( | nalchi::bit_stream_writer * | self, |
const char16_t * | str ) |
Writes a null-terminated UTF-16 string to the bit stream.
str | String to write. |
true
if writing has been successful, otherwise false
. bool nalchi_bit_stream_writer_write_utf32_string | ( | nalchi::bit_stream_writer * | self, |
const char32_t * | str ) |
Writes a null-terminated UTF-32 string to the bit stream.
str | String to write. |
true
if writing has been successful, otherwise false
. bool nalchi_bit_stream_writer_write_utf8_string | ( | nalchi::bit_stream_writer * | self, |
const char8_t * | str ) |
Writes a null-terminated UTF-8 string to the bit stream.
str | String to write. |
true
if writing has been successful, otherwise false
. bool nalchi_bit_stream_writer_write_wide_string | ( | nalchi::bit_stream_writer * | self, |
const wchar_t * | str ) |
Writes a null-terminated wide string to the bit stream.
str | String to write. |
true
if writing has been successful, otherwise false
.