mFrame
載入中...
搜尋中...
無符合項目
PArrayQueue.h
1
7#ifndef MFRAME_469CD94D_3818_43D8_8CD0_54E853D56BE0
8#define MFRAME_469CD94D_3818_43D8_8CD0_54E853D56BE0
9
10/* ***************************************************************************************
11 * Include
12 */
13
14//----------------------------------------------------------------------------------------
15
16//----------------------------------------------------------------------------------------
17#include "./../lang/Memory.h"
18#include "./../lang/Object.h"
19#include "./../util/ArrayQueue.h"
20#include "./../util/PArray.h"
21
22/* ***************************************************************************************
23 * Namespace
24 */
25namespace mframe::util {
26 class PArrayQueue;
27} // namespace mframe::util
28
29/* ***************************************************************************************
30 * Class/Interface/Struct/Enum
31 */
33 public mframe::util::ArrayQueue<void*> {
34 /* *************************************************************************************
35 * Variable
36 */
37 private:
39 uint16 vHead;
40 uint16 vTail;
41 bool vEmpty;
42
43 /* *************************************************************************************
44 * Abstract Method
45 */
46
47 /* *************************************************************************************
48 * Construct Method
49 */
50 public:
57 PArrayQueue(const mframe::lang::Memory& memory, int elementSize);
58
65 PArrayQueue(int length, int elementSize);
66
71 virtual ~PArrayQueue(void) override;
72
73 /* *************************************************************************************
74 * Operator Method
75 */
76 public:
82 template <typename E>
83 inline operator const ArrayQueue<E>&(void) const {
84 const ArrayQueue<>* src = this;
85 return *reinterpret_cast<const ArrayQueue<E>*>(src);
86 }
87
93 template <typename E>
94 inline operator ArrayQueue<E>&(void) {
95 ArrayQueue<>* src = this;
96 return *reinterpret_cast<ArrayQueue<E>*>(src);
97 }
98
99 /* *************************************************************************************
100 * Public Method <Override> - mframe::lang::Queue<void*>
101 */
102 public:
103 virtual bool offer(void* const& e) override;
104
105 virtual void*& poll(void) override;
106
107 virtual void*& peek(void) override;
108
109 /* *************************************************************************************
110 * Public Method <Override> - mframe::util::Collection<void*>
111 */
112 public:
113 virtual void clear(void) override;
114
115 virtual bool isEmpty(void) const override;
116
117 virtual int size(void) const override;
118
119 /* *************************************************************************************
120 * Public Method <Override> - mframe::lang::Iteraable<void*>
121 */
122 public:
123 virtual void forEach(mframe::func::Consumer<void*&>& accetp) override;
124
125 /* *************************************************************************************
126 * Public Method <Override> - mframe::util::ArrayQueue<void*>
127 */
128 public:
135 virtual bool isFull(void) const override;
136
137 /* *************************************************************************************
138 * Public Method
139 */
140
141 /* *************************************************************************************
142 * Protected Method
143 */
144
145 /* *************************************************************************************
146 * Private Method
147 */
148
149 /* *************************************************************************************
150 * Static Variable
151 */
152
153 /* *************************************************************************************
154 * Static Method
155 */
156};
157
158/* ***************************************************************************************
159 * End of file
160 */
161
162#endif /* MFRAME_469CD94D_3818_43D8_8CD0_54E853D56BE0 */
Definition Memory.h:29
Definition Object.h:34
Definition PArray.h:31
Definition PArrayQueue.h:33
virtual bool isFull(void) const override
virtual void clear(void) override
從此集合中刪除所有元素(可選操作)。此方法返回後,集合將為空。
virtual void *& poll(void) override
檢索並刪除此隊列的頭,如果此隊列為空,則返回null。
virtual bool offer(void *const &e) override
如果在不違反容量限制的情況下立即執行,則將指定的元素插入到此隊列中。 當使用容量限制隊列時,此方法通常優於 add(E) ,這可能無法僅通過拋出異常來插入元素。
PArrayQueue(const mframe::lang::Memory &memory, int elementSize)
Construct a new Array Queue object.
virtual int size(void) const override
返回此集合中的元素數。
PArrayQueue(int length, int elementSize)
Construct a new Array Queue object.
virtual bool isEmpty(void) const override
如果此集合不包含元素,則返回true。
virtual void forEach(mframe::func::Consumer< void *& > &accetp) override
對Iterable的每個元素執行給定的操作,直到處理完所有元素或該操作引發異常。 如果指定了迭代順序,則操作會按迭代順序執行。
virtual void *& peek(void) override
檢索但不刪除此隊列的頭部,如果此隊列為空,則返回 null 。
virtual ~PArrayQueue(void) override
Destroy the object.
Definition Array.h:22
Definition Consumer.h:31
Definition ArrayQueue.h:31