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
41 friend Memory;
42 /* *************************************************************************************
43 * Variable
44 */
45 private:
50 uint32 vLength;
51
52 /* *************************************************************************************
53 * Abstract Method
54 */
55
56 /* *************************************************************************************
57 * Construct Method
58 */
59 public:
63 Data(void);
64
69 explicit Data(const char* pointer);
70
75 template <typename T, size_t N>
76 Data(T (&array)[N])
77 : Data(reinterpret_cast<const void*>(array), static_cast<int>(N * sizeof(T))) {
78 return;
79 }
80
85 template <typename T, size_t N>
86 Data(const T (&array)[N])
87 : Data(reinterpret_cast<const void*>(array), static_cast<int>(N * sizeof(T))) {
88 return;
89 }
90
96 Data(const void* pointer, int length);
97
103 Data(void* pointer, int length);
104
109 Data(const Data& other);
110
111 /* *************************************************************************************
112 * Operator Method
113 */
114 public:
120 Data& operator=(const Data& other) = default;
121
122 /* *************************************************************************************
123 * Override Method - ufm::lang::Pointer
124 */
125 public:
134 virtual int copy(const void* source, int shift, int start, int length) override;
135
136 /* *************************************************************************************
137 * Public Method <Inline>
138 */
139 public:
145 inline bool isReadOnly(void) const {
146 return (static_cast<uint32>(this->vLength) & 0x80000000UL);
147 }
148
153 inline int length(void) const {
154 return static_cast<int>(this->vLength & 0x7FFFFFFFUL);
155 }
156
161 inline uint32 lengthUnsigned(void) const {
162 return (this->vLength & 0x7FFFFFFFUL);
163 }
164
169 inline int wipe(void) {
170 return this->wipe(0x00, 0, 0);
171 }
172
178 inline int wipe(uint8 value) {
179 return this->wipe(value, 0, 0);
180 }
181
188 inline int wipe(uint8 value, int length) {
189 return this->wipe(value, 0, length);
190 }
191
198 inline int popArray(int start, int length) {
199 return this->popArray(nullptr, 0, start, length);
200 }
201
209 inline int popArray(void* source, int start, int length) {
210 return this->popArray(source, 0, start, length);
211 }
212
220 inline int insertArray(const void* source, int start, int length) {
221 return this->insertArray(source, 0, start, length);
222 }
223 /* *************************************************************************************
224 * Public Method
225 */
226 public:
231 using Pointer::copy;
232
239 bool inRange(void* address) const;
240
248 int wipe(uint8 value, int start, int length);
249
250 /* *************************************************************************************
251 * Public Method
252 */
253 public:
260 ufm::lang::Data subData(int beginIndex, int length) const;
261
270 int insertArray(const void* source, int shift, int start, int length);
271
280 int popArray(void* source, int shift, int start, int length);
281
286 virtual int hashdata(void) const;
287
288 /* *************************************************************************************
289 * Protected Method
290 */
291
292 /* *************************************************************************************
293 * Private Method
294 */
295
296 /* *************************************************************************************
297 * Static Variable
298 */
299
300 /* *************************************************************************************
301 * Static Method
302 */
303};
304
305/* ***************************************************************************************
306 * End of file
307 */
308
309#endif /* MFRAME_031134DB_6B71_465A_A2FE_2CC0EF880BA0 */
資料封裝與操作類別
Definition Data.h:37
Data(const T(&array)[N])
以常數字元陣列初始化資料物件
Definition Data.h:86
Data(void *pointer, int length)
以可修改指標與長度初始化資料物件
int length(void) const
取得資料長度
Definition Data.h:153
uint32 lengthUnsigned(void) const
取得資料長度 (無符號)
Definition Data.h:161
Data(const void *pointer, int length)
以常數指標與長度初始化資料物件
int popArray(int start, int length)
取出資料 (不儲存)
Definition Data.h:198
Data(const Data &other)
複製建構子
int wipe(void)
擦除所有資料 (預設值 0x00)
Definition Data.h:169
int insertArray(const void *source, int start, int length)
插入資料至本物件
Definition Data.h:220
Data & operator=(const Data &other)=default
賦值運算子
bool isReadOnly(void) const
判斷資料是否唯讀
Definition Data.h:145
int popArray(void *source, int start, int length)
取出資料並儲存至指定指標
Definition Data.h:209
int wipe(uint8 value, int start, int length)
擦除資料 (指定值、起始位置與長度)
int insertArray(const void *source, int shift, int start, int length)
插入資料 (含來源位移)
Data(void)
預設建構子,初始化空資料物件
virtual int hashdata(void) const
計算資料雜湊值
int wipe(uint8 value)
擦除所有資料 (指定值)
Definition Data.h:178
int popArray(void *source, int shift, int start, int length)
取出資料 (含來源位移)
ufm::lang::Data subData(int beginIndex, int length) const
取得子資料區段
virtual int copy(const void *source, int shift, int start, int length) override
複製來源資料至本物件
int wipe(uint8 value, int length)
擦除資料 (指定值與長度)
Definition Data.h:188
Data(const char *pointer)
以字元指標初始化資料物件
bool inRange(void *address) const
判斷指定位址是否在資料範圍內
Data(T(&array)[N])
以字元陣列初始化資料物件
Definition Data.h:76
動態記憶體管理類別
Definition Memory.h:38
提供記憶體位址存取與操作功能
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