mFrame
載入中...
搜尋中...
無符合項目
SimpleReader.h
1
7#ifndef MFRAME_EC98DD08_B6BF_40D8_943E_5084F05F5CE5
8#define MFRAME_EC98DD08_B6BF_40D8_943E_5084F05F5CE5
9
10/* ***************************************************************************************
11 * Include
12 */
13
14//----------------------------------------------------------------------------------------
15#include "./../lang/Data.h"
16#include "./../lang/Readable.h"
17#include "./../lang/Refreshable.h"
18
19//----------------------------------------------------------------------------------------
20
21/* ***************************************************************************************
22 * Namespace
23 */
24namespace ufm::io {
25 class SimpleReader;
26} // namespace ufm::io
27
28/* ***************************************************************************************
29 * Class/Interface/Struct/Enum
30 */
31
44 /* *************************************************************************************
45 * Variable
46 */
47 private:
48 int vPosition;
49
50 /* *************************************************************************************
51 * Abstract Method
52 */
53
54 /* *************************************************************************************
55 * Construct Method
56 */
57 public:
64
71 inline SimpleReader(void* ptr, int length)
72 : SimpleReader(ufm::lang::Data(ptr, length)) {
73 return;
74 }
75
79 virtual ~SimpleReader(void) override;
80
81 /* *************************************************************************************
82 * Operator Method
83 */
84
85 /* *************************************************************************************
86 * Override Method - ufm::lang::Readable
87 */
88 public:
93 virtual int avariable(void) const override;
94
101 virtual int pollByte(char& result) override;
102
108 virtual int poll(ufm::lang::Appendable& appendable) override;
109
116 virtual int poll(void* pointer, int length) override;
117
118 /* *************************************************************************************
119 * Override Method - ufm::lang::Iterable<const char>
120 */
121 public:
130 virtual void forEach(ufm::func::Consumer<const char&>& action) override;
131
138 virtual const char* elementAt(int index) const override;
139
148 virtual int nextIndex(int index) const override;
149
156
162 virtual ufm::util::Iterator<const char> end(void) override;
163
164 /* *************************************************************************************
165 * Override Method - ufm::lang::Refreshable
166 */
167 public:
176 virtual void refresh(void) override;
177
178 /* *************************************************************************************
179 * Public Method
180 */
181
182 /* *************************************************************************************
183 * Protected Method
184 */
185
186 /* *************************************************************************************
187 * Private Method
188 */
189
190 /* *************************************************************************************
191 * Static Variable
192 */
193
194 /* *************************************************************************************
195 * Static Method
196 */
197};
198
199/* ***************************************************************************************
200 * End of file
201 */
202
203#endif /* MFRAME_EC98DD08_B6BF_40D8_943E_5084F05F5CE5 */
用於從資料來源讀取資料的簡易實現類
Definition SimpleReader.h:43
virtual int nextIndex(int index) const override
返回當前索引的下一個有效索引。
virtual ufm::util::Iterator< const char > begin(void) override
返回一個迭代器,用於遍歷集合中的元素
virtual int avariable(void) const override
取得可讀取的資料數量
SimpleReader(void *ptr, int length)
使用 void* 指標和長度建立讀取器
Definition SimpleReader.h:71
virtual void forEach(ufm::func::Consumer< const char & > &action) override
遍歷集合中所有元素,對每個元素執行指定操作。 若所有元素處理完畢或操作中發生異常則停止。
virtual void refresh(void) override
刷新當前狀態或資料
virtual const char * elementAt(int index) const override
獲取集合中指定索引處的元素。
virtual ~SimpleReader(void) override
銷毀物件,釋放相關資源
SimpleReader(const ufm::lang::Data &source)
使用指定的資料來源建立讀取器
virtual ufm::util::Iterator< const char > end(void) override
返回一個迭代器,用於遍歷集合的結尾
virtual int pollByte(char &result) override
讀取一個字節並將其從緩衝區移除
virtual int poll(void *pointer, int length) override
從緩衝區讀取指定長度的資料到指定的記憶體位置
virtual int poll(ufm::lang::Appendable &appendable) override
從緩衝區讀取資料並寫入到Appendable物件中
資料處理類別
Definition Data.h:43
int length(void) const
取得資料有效長度
Definition Data.h:139
Data(void)
建立新的 Data 物件
E * pointer(void) const
模板方法,取得內部指標並轉換為指定型態(不指定偏移)
Definition Pointer.h:398
[Class] 迭代器介面
Definition Iterator.h:42
Definition Buffer.h:24
[Interface] 消費者函數式介面模板
Definition Consumer.h:43
資料附加介面 (Appendable)
Definition Appendable.h:43
[Interface] 定義資料讀取介面
Definition Readable.h:46
[Interface] 定義可刷新物件的行為
Definition Refreshable.h:38