11#ifndef INCGUARD_MGL_BYTE_STREAM_H_1510422583
12#define INCGUARD_MGL_BYTE_STREAM_H_1510422583
33 , _isOverflowed(false)
45 constexpr ByteStream(
void *address,
size_t size) noexcept
49 , _isOverflowed(
false)
61 constexpr ByteStream(
const void *address,
size_t size) noexcept
62 : _address(
const_cast<void *
>(address))
65 , _isOverflowed(
false)
77 void SetBuffer(
void *address,
size_t size)
noexcept;
78 void SetBuffer(
const void *address,
size_t size)
noexcept;
87 [[nodiscard]]
constexpr size_t GetOffset() const noexcept {
return _offset; };
95 [[nodiscard]]
constexpr size_t GetSize() const noexcept {
return _size; };
115 return &
static_cast<uint8_t *
>(_address)[_offset];
126 return &
static_cast<const uint8_t *
>(_address)[_offset];
129 bool Read(
void *dest,
size_t size)
noexcept;
130 bool Write(
const void *source,
size_t size)
noexcept;
142 constexpr bool Read(T &value)
noexcept
144 if constexpr (std::is_same<bool, T>::value)
150 return Read(&value,
sizeof(T));
167 if constexpr (std::is_same<bool, T>::value)
173 Read(&value,
sizeof(T));
188 constexpr bool Write(T value)
noexcept
190 if constexpr (std::is_same<bool, T>::value)
196 return Write(&value,
sizeof(T));
209 return _isOverflowed;
217 bool Fill(uint8_t value,
size_t size) noexcept;
218 bool Skip(
size_t size) noexcept;
バイトデータストリームクラス
Definition mgl_byte_stream.h:22
bool SetOffset(size_t offset) noexcept
オフセットの設定
Definition mgl_byte_stream.cc:60
bool Write(const void *source, size_t size) noexcept
書き込み
Definition mgl_byte_stream.cc:162
constexpr ByteStream(const void *address, size_t size) noexcept
コンストラクタ(読み込み専用)
Definition mgl_byte_stream.h:61
constexpr ByteStream(void *address, size_t size) noexcept
コンストラクタ
Definition mgl_byte_stream.h:45
constexpr ByteStream() noexcept
コンストラクタ
Definition mgl_byte_stream.h:29
bool Skip(size_t size) noexcept
ストリームのスキップ
Definition mgl_byte_stream.cc:281
constexpr size_t GetSize() const noexcept
バッファサイズの取得
Definition mgl_byte_stream.h:95
constexpr size_t GetOffset() const noexcept
オフセットの取得
Definition mgl_byte_stream.h:87
bool Clear(ClearType clearType) noexcept
データのクリア
Definition mgl_byte_stream.cc:83
constexpr bool Read(T &value) noexcept
値の読み込み
Definition mgl_byte_stream.h:142
ClearType
バッファクリア時の動作タイプ
Definition mgl_byte_stream.h:72
constexpr T Read() noexcept
型を指定して値を読み込み
Definition mgl_byte_stream.h:164
void SetBuffer(void *address, size_t size) noexcept
バッファの設定
Definition mgl_byte_stream.cc:25
constexpr bool IsOverflowed() const noexcept
オーバーフローしているかを返す
Definition mgl_byte_stream.h:207
constexpr const void * GetCurrentConstPoint() const noexcept
現在の先頭位置を取得(const版)
Definition mgl_byte_stream.h:124
bool ReadBool() noexcept
論理値の読み込み
Definition mgl_byte_stream.cc:212
constexpr bool Write(T value) noexcept
値の書き込み
Definition mgl_byte_stream.h:188
bool WriteBool(bool flag) noexcept
論理値の書き込み
Definition mgl_byte_stream.cc:229
constexpr void * GetCurrentPoint() const noexcept
現在の先頭位置の取得
Definition mgl_byte_stream.h:108
bool Fill(uint8_t value, size_t size) noexcept
バッファを任意の値で埋める
Definition mgl_byte_stream.cc:251