7#ifndef MFRAME_6B8EAE16_5470_4A62_A67B_182F60466B41
8#define MFRAME_6B8EAE16_5470_4A62_A67B_182F60466B41
15#include "./../lang/Memory.h"
16#include "./../lang/Object.h"
17#include "./../util/Container.h"
25 class IndexedPayloadArena;
92 virtual void clear(
void)
override;
99 virtual bool isEmpty(
void)
const override;
108 virtual int size(
void)
const override;
124 template <
typename T,
size_t N>
125 inline bool insert(T (&array)[N],
int index) {
126 return this->
insert(&array[0],
static_cast<int>(N *
sizeof(T)), index);
138 bool insert(
const void* data,
int length,
int index);
156 int get(
void*& data,
int index)
const;
168 template <
typename T>
169 int get(T*& data,
int index)
const {
171 int result = this->
get(raw, index);
172 data =
static_cast<T*
>(raw);
186 template <
typename T,
size_t N>
187 inline bool set(T (&array)[N],
int index) {
188 return this->
set(&array[0],
static_cast<int>(N *
sizeof(T)), index);
200 bool set(
const void* data,
int length,
int index);
動態記憶體管理類別
Definition Memory.h:38
物件基底類別
Definition Object.h:63
索引化有效載荷記憶體區域管理器
Definition IndexedPayloadArena.h:41
bool set(const void *data, int length, int index)
設定指定索引位置的資料
bool insert(const void *data, int length, int index)
在指定索引位置插入資料
static constexpr uint16 ELEMENT_MASK
元素對齊遮罩
Definition IndexedPayloadArena.h:236
static constexpr uint16 ELEMENT_SHIFT
元素對齊位移量(8位元組對齊)
Definition IndexedPayloadArena.h:235
int availableGap(void) const
獲取可用的記憶體間隙大小
virtual int size(void) const override
返回此集合中的元素數量
bool set(T(&array)[N], int index)
設定指定索引位置的陣列資料
Definition IndexedPayloadArena.h:187
virtual void clear(void) override
從此集合中刪除所有元素(可選操作)
int get(T *&data, int index) const
獲取指定索引的資料,並轉換為指定型別指標
Definition IndexedPayloadArena.h:169
virtual ~IndexedPayloadArena(void) override
析構函數,釋放資源
int get(void *&data, int index) const
獲取指定索引的資料
int compact(void)
壓縮記憶體,整理碎片空間
bool insert(T(&array)[N], int index)
在指定索引位置插入陣列資料
Definition IndexedPayloadArena.h:125
bool remove(int index)
移除指定索引的資料塊
virtual bool isEmpty(void) const override
檢查此集合是否不包含任何元素
IndexedPayloadArena(ufm::lang::Memory memory)
建構索引化有效載荷記憶體區域管理器
容器介面,定義所有集合容器的基本操作。
Definition Container.h:176
資料塊控制結構
Definition IndexedPayloadArena.h:250
uint16 offset
資料塊在記憶體中的偏移量
Definition IndexedPayloadArena.h:253
uint16 index
資料塊的索引編號
Definition IndexedPayloadArena.h:254
uint16 capacity
資料塊的總容量(位元組)
Definition IndexedPayloadArena.h:251
uint16 length
資料塊的實際使用長度(位元組)
Definition IndexedPayloadArena.h:252