8#ifndef MFRAME_C76BAF3F_EE1F_46A3_A050_9CD1057055E5
9#define MFRAME_C76BAF3F_EE1F_46A3_A050_9CD1057055E5
18#include "./../io/Buffer.h"
19#include "./../lang/Memory.h"
20#include "./../lang/Strings.h"
86 :
ByteBuffer(ufm::lang::Memory(pointer, length)) {
190 return static_cast<uint32
>(this->
position());
200 return static_cast<uint32
>(this->
position());
209 uint32 result =
static_cast<uint32
>(this->
position());
220 uint32 result =
static_cast<uint32
>(this->
position());
287 virtual int poll(
void* pointer,
int length)
override;
309 virtual const char*
elementAt(
int index)
const override;
352 virtual int putByte(
const char data)
override;
373 virtual int put(
const void* pointer,
int length)
override;
394 return this->vMemory.
length();
403 return this->vPosition;
422 this->vMark = vPosition;
444 return this->
pollByte(
reinterpret_cast<char&
>(result));
454 return this->
pollShort(
reinterpret_cast<short&
>(result));
464 return this->
pollInt(
reinterpret_cast<int&
>(result));
473 return this->vMemory;
515 bool put(
const char*
string);
靈活高效的位元組緩衝區實現
Definition ByteBuffer.h:45
bool position(int newPosition)
設定 ByteBuffer 的位置。
int operator=(int v)
重載運算子 =,設定 ByteBuffer 的位置。
Definition ByteBuffer.h:160
bool put(const char *string)
將字串寫入 ByteBuffer。
virtual int putByte(const char data) override
輸入單一字節至緩衝區
ByteBuffer & rewind(void)
將 ByteBuffer 的位置重置為 0。
Definition ByteBuffer.h:431
virtual ufm::util::Iterator< const char > begin(void) override
返回一個迭代器,用於遍歷集合中的元素
bool pollShort(short &result)
從 ByteBuffer 中提取一個 short。
virtual void clear(void) override
清空緩衝區內容
ByteBuffer & operator<<(char c)
重載運算子 <<,將 char 資料寫入 ByteBuffer。
Definition ByteBuffer.h:105
bool limit(int newLimit)
設定 ByteBuffer 的限制。
virtual int avariable(void) const override
取得可讀取的資料數量
bool putFloat(const float value)
將 float 資料寫入 ByteBuffer。
virtual ufm::lang::Readable & getReadable(void) override
獲取 ByteBuffer 的可讀物件。
virtual int poll(void *pointer, int length) override
從緩衝區讀取指定長度的資料到指定的記憶體位置
ByteBuffer & operator<<(ufm::lang::Strings &string)
重載運算子 <<,將 ufm::lang::Strings 物件寫入 ByteBuffer。
Definition ByteBuffer.h:149
bool pollFloat(float &result)
從 ByteBuffer 中提取一個 float。
bool putInt(const int value)
將 int 資料寫入 ByteBuffer。
int limit(void) const
獲取 ByteBuffer 的限制。
Definition ByteBuffer.h:384
void move(int position)
將位置移動到指定位置
bool pollInt(uint32 &result)
從 ByteBuffer 中提取一個 int。
Definition ByteBuffer.h:463
uint32 operator--(int)
重載運算子 –,將 ByteBuffer 的位置向後移動一位(後置)。
Definition ByteBuffer.h:219
virtual ufm::util::Iterator< const char > end(void) override
返回一個迭代器,用於遍歷集合的結尾
virtual int poll(ufm::lang::Appendable &appendable) override
從緩衝區讀取資料並寫入到Appendable物件中
virtual ufm::lang::Appendable & getAppendable(void) override
獲取 ByteBuffer 的可追加物件。
ByteBuffer & operator<<(short s)
重載運算子 <<,將 short 資料寫入 ByteBuffer。
Definition ByteBuffer.h:116
ByteBuffer & reset(void)
重置 ByteBuffer 的位置到標記。
Definition ByteBuffer.h:411
virtual const char * elementAt(int index) const override
獲取集合中指定索引處的元素。
int putFormat(const char *format, va_list args)
將格式化字串寫入 ByteBuffer。
void flip(void)
翻轉緩衝區,為讀取已寫入資料做準備
virtual int remaining(void) const override
取得緩衝區剩餘空閒字節數。
virtual ~ByteBuffer(void) override
釋放緩衝區資源
bool pollInt(int &result)
從 ByteBuffer 中提取一個 int。
void operator+=(int shift)
重載運算子 +=,將 ByteBuffer 的位置向前移動指定的位移量。
Definition ByteBuffer.h:170
virtual int put(const void *pointer, int length) override
從記憶體指標附加資料至緩衝區
uint32 operator--(void)
重載運算子 –,將 ByteBuffer 的位置向後移動一位。
Definition ByteBuffer.h:198
virtual void forEach(ufm::func::Consumer< const char & > &action) override
遍歷集合中所有元素,對每個元素執行指定操作。 若所有元素處理完畢或操作中發生異常則停止。
ByteBuffer(ufm::lang::Memory memory) noexcept
使用現有記憶體建立位元組緩衝區
ByteBuffer & mark(void)
標記 ByteBuffer 的當前位置。
Definition ByteBuffer.h:421
bool pollShort(uint16 &result)
從 ByteBuffer 中提取一個 short。
Definition ByteBuffer.h:453
bool putShort(const short value)
將 short 資料寫入 ByteBuffer。
ByteBuffer & operator<<(int v)
重載運算子 <<,將 int 資料寫入 ByteBuffer。
Definition ByteBuffer.h:127
uint32 operator++(int)
重載運算子 ++,將 ByteBuffer 的位置向前移動一位(後置)。
Definition ByteBuffer.h:208
int capacity(void) const
獲取 ByteBuffer 的容量。
Definition ByteBuffer.h:393
bool pollByte(uint8 &result)
從 ByteBuffer 中提取一個 byte。
Definition ByteBuffer.h:443
virtual int pollByte(char &result) override
讀取一個字節並將其從緩衝區移除
uint32 operator++(void)
重載運算子 ++,將 ByteBuffer 的位置向前移動一位。
Definition ByteBuffer.h:188
int putFormat(const char *format,...)
將格式化字串寫入 ByteBuffer。
ufm::lang::Memory & memory(void)
獲取 ByteBuffer 的記憶體。
Definition ByteBuffer.h:472
int position(void) const
獲取 ByteBuffer 的位置。
Definition ByteBuffer.h:402
ByteBuffer(int length)
建立指定大小的位元組緩衝區
Definition ByteBuffer.h:75
virtual int nextIndex(int index) const override
返回當前索引的下一個有效索引。
virtual int put(ufm::lang::Readable &readable) override
從 Readable 物件附加資料至緩衝區
ByteBuffer(void *pointer, int length)
使用常數指標建立位元組緩衝區
Definition ByteBuffer.h:85
bool put(const ufm::lang::Strings &string)
將 ufm::lang::Strings 物件寫入 ByteBuffer。
void operator-=(int shift)
重載運算子 -=,將 ByteBuffer 的位置向後移動指定的位移量。
Definition ByteBuffer.h:179
ByteBuffer & operator<<(const char *string)
重載運算子 <<,將字串寫入 ByteBuffer。
Definition ByteBuffer.h:138
int length(void) const
取得資料有效長度
Definition Data.h:139
存儲資料的類別,提供動態記憶體管理功能。
Definition Memory.h:44
物件基底類別
Definition Object.h:63
字串類別,提供字串操作和記憶體管理功能
Definition Strings.h:33
[Class] 迭代器介面
Definition Iterator.h:42
[Interface] 消費者函數式介面模板
Definition Consumer.h:43
[Interface] 緩衝區基礎介面,定義資料存取的核心功能
Definition Buffer.h:41
資料附加介面 (Appendable)
Definition Appendable.h:43
[Interface] 定義資料讀取介面
Definition Readable.h:46