mFrame
載入中...
搜尋中...
無符合項目
Data.h
1
7#ifndef MFRAME_031134DB_6B71_465A_A2FE_2CC0EF880BA0
8#define MFRAME_031134DB_6B71_465A_A2FE_2CC0EF880BA0
9
10/* ***************************************************************************************
11 * Include
12 */
13
14//----------------------------------------------------------------------------------------
15
16//----------------------------------------------------------------------------------------
17#include "./../lang/Pointer.h"
18
19/* ***************************************************************************************
20 * Namespace
21 */
22namespace ufm::lang {
23 class Data;
24 class Memory;
25} // namespace ufm::lang
26
27/* ***************************************************************************************
28 * Class/struct/Struct/Enum
29 */
30
44 friend Memory;
45 /* *************************************************************************************
46 * Variable
47 */
48 private:
49 uint32 vLength;
50
51 /* *************************************************************************************
52 * Abstract Method
53 */
54
55 /* *************************************************************************************
56 * Construct Method
57 */
58 public:
62 Data(void);
63
69 explicit Data(const char* pointer);
70
77 Data(const void* pointer, int length);
78
85 Data(void* pointer, int length);
86
92 Data(const Data& other);
93
94 /* *************************************************************************************
95 * Operator Method
96 */
97 public:
103 Data& operator=(const Data& other) = default;
104
105 /* *************************************************************************************
106 * Override Method - ufm::lang::Pointer
107 */
108 public:
118 virtual int copy(const void* source, int shift, int start, int length) override;
119
120 /* *************************************************************************************
121 * Public Method <Inline>
122 */
123 public:
130 inline bool isReadOnly(void) const {
131 return (static_cast<uint32>(this->vLength) & 0x80000000UL);
132 }
133
139 inline int length(void) const {
140 return static_cast<int>(this->vLength & 0x7FFFFFFFUL);
141 }
142
148 inline uint32 lengthUnsigned(void) const {
149 return (this->vLength & 0x7FFFFFFFUL);
150 }
151
157 inline int wipe(void) {
158 return this->wipe(0x00, 0, 0);
159 }
160
167 inline int wipe(uint8 value) {
168 return this->wipe(value, 0, 0);
169 }
170
178 inline int wipe(uint8 value, int length) {
179 return this->wipe(value, 0, length);
180 }
181
189 inline int popArray(int start, int length) {
190 return this->popArray(nullptr, 0, start, length);
191 }
192
201 inline int popArray(void* source, int start, int length) {
202 return this->popArray(source, 0, start, length);
203 }
204
213 inline int insertArray(const void* source, int start, int length) {
214 return this->insertArray(source, 0, start, length);
215 }
216 /* *************************************************************************************
217 * Public Method
218 */
219 public:
220 using Pointer::copy;
221
229 bool inRange(void* address) const;
230
239 int wipe(uint8 value, int start, int length);
240
241 /* *************************************************************************************
242 * Public Method
243 */
244 public:
252 ufm::lang::Data subData(int beginIndex, int length) const;
253
263 int insertArray(const void* source, int shift, int start, int length);
264
274 int popArray(void* source, int shift, int start, int length);
275
281 virtual int hashdata(void) const;
282
283 /* *************************************************************************************
284 * Protected Method
285 */
286
287 /* *************************************************************************************
288 * Private Method
289 */
290
291 /* *************************************************************************************
292 * Static Variable
293 */
294
295 /* *************************************************************************************
296 * Static Method
297 */
298 public:
306 static void wipe(void* pointer, uint8 value, int length);
307
314 static void wipe(void* pointer, int length);
315};
316
317/* ***************************************************************************************
318 * End of file
319 */
320
321#endif /* MFRAME_031134DB_6B71_465A_A2FE_2CC0EF880BA0 */
資料處理類別
Definition Data.h:43
Data(void *pointer, int length)
使用可修改 void 指標及長度建立 Data 物件
static void wipe(void *pointer, uint8 value, int length)
使用指定值擦除記憶體區塊
int length(void) const
取得資料有效長度
Definition Data.h:139
static void wipe(void *pointer, int length)
根據指定長度擦除記憶體區塊
uint32 lengthUnsigned(void) const
取得資料無符號長度
Definition Data.h:148
Data(const void *pointer, int length)
使用常數 void 指標及長度建立 Data 物件
int popArray(int start, int length)
從指定起始位置取出陣列資料(不儲存結果)
Definition Data.h:189
Data(const Data &other)
複製建構子,根據現有 Data 物件建立新物件
int wipe(void)
以預設值 0x00 擦除所有資料
Definition Data.h:157
int insertArray(const void *source, int start, int length)
將來源陣列資料插入到 Data 物件中
Definition Data.h:213
Data & operator=(const Data &other)=default
賦值運算子,將另一個 Data 物件的內容複製到當前物件
bool isReadOnly(void) const
檢查資料是否唯讀
Definition Data.h:130
int popArray(void *source, int start, int length)
從指定起始位置取出陣列資料並儲存至指定來源
Definition Data.h:201
int wipe(uint8 value, int start, int length)
從指定起始位置以指定長度擦除資料
int insertArray(const void *source, int shift, int start, int length)
將來源陣列資料依指定位移複製至 Data 物件中
Data(void)
建立新的 Data 物件
virtual int hashdata(void) const
計算資料雜湊值
int wipe(uint8 value)
以指定值擦除所有資料
Definition Data.h:167
int popArray(void *source, int shift, int start, int length)
從 Data 物件中依指定位移取出陣列資料
ufm::lang::Data subData(int beginIndex, int length) const
取得子資料區段
virtual int copy(const void *source, int shift, int start, int length) override
將來源資料複製到 Data 物件中
int wipe(uint8 value, int length)
從起始處以指定長度使用指定值擦除資料
Definition Data.h:178
Data(const char *pointer)
根據字元指標建立 Data 物件
bool inRange(void *address) const
檢查指定位址是否落在資料範圍內
存儲資料的類別,提供動態記憶體管理功能。
Definition Memory.h:44
提供記憶體位址存取與操作功能
Definition Pointer.h:44
E * pointer(void) const
模板方法,取得內部指標並轉換為指定型態(不指定偏移)
Definition Pointer.h:398
int copy(const void *source, int length)
複製來源資料至內部資料區塊,使用預設偏移參數
Definition Pointer.h:293
Data
Cyclic Redundancy Check Reset Control.
Definition Appendable.h:23