![]() |
mFrame
|
堆疊式記憶體分配器 更多...
#include <Stacker.h>
公開方法(Public Methods) | |
Stacker (void *buffer, int size) | |
建構一個新的 Stacker 物件 | |
Stacker (ufm::lang::Memory memory) noexcept | |
建構一個新的 Stacker 物件 | |
virtual | ~Stacker (void) override |
解構 Stacker 物件 | |
virtual void | forEach (ufm::func::Consumer< void *& > &action) override |
遍歷集合中所有元素,對每個元素執行指定操作。 若所有元素處理完畢或操作中發生異常則停止。 | |
virtual void ** | elementAt (int index) const override |
獲取集合中指定索引處的元素。 | |
virtual int | nextIndex (int index) const override |
返回當前索引的下一個有效索引。 | |
virtual ufm::util::Iterator< void * > | begin (void) override |
返回一個迭代器,用於遍歷集合中的元素 | |
virtual ufm::util::Iterator< void * > | end (void) override |
返回一個迭代器,用於遍歷集合的結尾 | |
virtual void | clear (void) override |
從此集合中刪除所有元素(可選操作)。此方法返回後,集合將為空。 | |
virtual bool | isEmpty (void) const override |
如果此集合不包含元素,則返回true。 | |
virtual int | size (void) const override |
返回此集合中的元素數。 | |
virtual void * | alloc (int size) override |
分配指定大小的記憶體 | |
virtual bool | free (void *ptr, int size=0) override |
釋放先前分配的記憶體 | |
virtual int | getFree (void) override |
取得剩餘的可用記憶體數量 | |
virtual int | getTotal (void) override |
取得總記憶體大小 | |
virtual ufm::lang::Memory | allocMemory (int size) |
分配指定大小的記憶體並返回其 Memory 封裝 | |
![]() | |
void * | operator new (size_t n) |
使用運算子 new 分配記憶體 | |
void * | operator new (size_t n, void *p) |
在指定記憶體上調用運算子 new | |
virtual ufm::lang::Object & | getObject (void) override |
取得對應的 Object 物件 | |
void | delay (int milliseconds) const |
延遲指定的毫秒數進行執行緒等待 | |
bool | equals (Object *object) const |
判斷與另一物件是否為相同參照(指標型態比較) | |
bool | equals (Object &object) const |
判斷與另一物件是否為相同參照(參照型態比較) | |
void | wait (void) const |
使當前線程等待直到被通知 | |
bool | wait (int timeout) const |
等待通知或超時 | |
bool | yield (void) const |
讓執行緒讓渡控制權給同優先權的下一個執行緒 | |
int | lock (void) const |
核心鎖定,鎖定期間禁止線程切換 | |
int | unlock (void) const |
核心解鎖 | |
ufm::sys::Thread * | currentThread (void) const |
取得當前執行緒指標 | |
virtual int | hashcode (void) const |
返回對象的哈希碼值。支持這種方法是為了散列表,如HashMap提供的那樣。 | |
![]() | |
virtual | ~Interface (void)=default |
虛擬析構函式 | |
靜態公開方法(Static Public Methods) | |
static Stacker * | construct (void *pointer, int size) |
在指定的記憶體區域上建構 Stacker 物件 | |
保護屬性 | |
ufm::lang::Memory | vMemory |
用於堆疊分配的記憶體空間 | |
uint8 * | vStackPointer |
堆疊指針,指向下一個可分配的記憶體位置 | |
uint32 | vMask |
對齊遮罩,用於記憶體對齊 | |
堆疊式記憶體分配器
一個簡單的記憶體堆疊分配器,支援順序分配但不支援個別釋放。 當呼叫 clear() 方法時,所有之前分配的記憶體將一次性釋放。 適合用於臨時性記憶體分配,並在完成後一次性釋放所有資源的情境。
|
inline |
|
noexcept |
|
overridevirtual |
|
overridevirtual |
分配指定大小的記憶體
size | 要分配的記憶體大小,以位元組(bytes)為單位 |
|
virtual |
分配指定大小的記憶體並返回其 Memory 封裝
size | 需要分配的記憶體大小(位元組) |
|
overridevirtual |
|
overridevirtual |
從此集合中刪除所有元素(可選操作)。此方法返回後,集合將為空。
|
static |
|
overridevirtual |
|
overridevirtual |
|
overridevirtual |
遍歷集合中所有元素,對每個元素執行指定操作。 若所有元素處理完畢或操作中發生異常則停止。
當操作導致底層資料源發生變動時(未同步處理),其行為未定義。
action | 對每個元素執行的操作 |
|
overridevirtual |
釋放先前分配的記憶體
ptr | 要釋放的記憶體指標,此指標必須是由 alloc 方法分配的 |
size | 要釋放的記憶體大小,某些實作可能需要此參數,預設為 0 |
|
overridevirtual |
|
overridevirtual |
|
overridevirtual |
|
overridevirtual |
返回當前索引的下一個有效索引。
index | 當前索引 |
如果當前索引已經是最後一個元素,則返回 -1。 如果當前索引無效(如 -1),則返回 0
|
overridevirtual |
返回此集合中的元素數。
如果此收藏包含超過 Integer.MAX_VALUE個元素,則返回Integer.MAX_VALUE。