7#ifndef MFRAME_469CD94D_3818_43D8_8CD0_54E853D56BE0
8#define MFRAME_469CD94D_3818_43D8_8CD0_54E853D56BE0
17#include "./../lang/Memory.h"
18#include "./../lang/Object.h"
19#include "./../util/PArray.h"
20#include "./../util/Queue.h"
47 volatile uint16 vHead;
48 volatile uint16 vTail;
49 volatile uint16 vCount;
50 volatile bool vSyncOffer;
51 volatile bool vSyncPoll;
126 template <
typename E>
129 return *
reinterpret_cast<const Queue<E>*
>(src);
138 template <
typename E>
141 return *
reinterpret_cast<Queue<E>*
>(src);
148 virtual bool offer(
void*
const& e)
override;
150 virtual void*&
poll(
void)
override;
152 virtual void*&
peek(
void)
override;
179 virtual int size(
void)
const override;
242 virtual bool isFull(
void)
const override;
存儲資料的類別,提供動態記憶體管理功能。
Definition Memory.h:44
物件基底類別
Definition Object.h:63
指標陣列佇列類別
Definition ArrayQueue.h:40
virtual void ** elementAt(int index) const override
獲取集合中指定索引處的元素。
ArrayQueue(ufm::util::ArrayQueue &other)=delete
複製構造函數
virtual void *& poll(void) override
檢索並刪除此隊列的頭,如果此隊列為空,則返回null。
ArrayQueue(int queueSize, int elementSize)
從指定的記憶體和元素大小建構新的指標陣列佇列
Definition ArrayQueue.h:75
virtual ufm::util::Iterator< void * > end(void) override
取得 Scanner 結尾迭代器。
virtual bool isEmpty(void) const override
如果此集合不包含元素,則返回true。
virtual ufm::util::Iterator< void * > begin(void) override
取得目前插入位置。
virtual void clear(void) override
從此集合中刪除所有元素(可選操作)。此方法返回後,集合將為空。
ArrayQueue(ufm::lang::Memory memory, int elementSize) noexcept
從記憶體區域建構新的指標陣列佇列
Definition ArrayQueue.h:86
ArrayQueue(ufm::util::PArray pArray) noexcept
從記憶體區域建構新的指標陣列佇列
ArrayQueue(ArrayQueue &&other) noexcept=default
移動構造函數
virtual int size(void) const override
返回此集合中的元素數。
virtual bool isFull(void) const override
檢查佇列是否已滿
virtual ~ArrayQueue(void) override
解構指標陣列佇列物件
virtual bool offer(void *const &e) override
如果在不違反容量限制的情況下立即執行,則將指定的元素插入到此隊列中。 當使用容量限制隊列時,此方法通常優於 add(E) ,這可能無法僅通過拋出異常來插入元素。
virtual void *& peek(void) override
檢索但不刪除此隊列的頭部,如果此隊列為空,則返回 null 。
virtual void forEach(ufm::func::Consumer< void *& > &accetp) override
遍歷集合中所有元素,對每個元素執行指定操作。 若所有元素處理完畢或操作中發生異常則停止。
virtual int nextIndex(int index) const override
返回當前索引的下一個有效索引。
[Class] 迭代器介面
Definition Iterator.h:42
指標陣列類別
Definition PArray.h:39
[Interface] 消費者函數式介面模板
Definition Consumer.h:43
[Interface] 佇列介面
Definition Queue.h:44