mFrame
載入中...
搜尋中...
無符合項目
Application.h
1
7#ifndef MFRAME_6480DBEC_851F_4E8B_BC37_5C742C6672AF
8#define MFRAME_6480DBEC_851F_4E8B_BC37_5C742C6672AF
9
10/* ***************************************************************************************
11 * Include
12 */
13
14//----------------------------------------------------------------------------------------
15#include "./../func/Runnable.h"
16#include "./../lang/Object.h"
17#include "./../lang/Updatable.h"
18#include "./../util/ApplicationHandle.h"
19#include "./../util/PArraySet.h"
20
21//----------------------------------------------------------------------------------------
22
23/* ***************************************************************************************
24 * Namespace
25 */
26namespace ufm::util {
27 class Application;
28} // namespace ufm::util
29
30/* ***************************************************************************************
31 * Class/Interface/Struct/Enum
32 */
33
107 public ufm::func::Runnable {
108 /* *************************************************************************************
109 * Class/Interface/Struct/Enum
110 */
111 public:
112 struct Listener;
113
114 /* *************************************************************************************
115 * Variable
116 */
117 private:
119 ufm::util::PArraySet vApplications;
121 ufm::func::Runnable* vUserTask;
123 ufm::util::ApplicationHandle vHandlerHost;
125 ufm::util::ApplicationHandle vHandlerIdle;
127 uint32 vTickMark;
129 uint32 vTaskTick;
131 bool vUpdating;
132
133 /* *************************************************************************************
134 * Abstract Method
135 */
136
137 /* *************************************************************************************
138 * Construct Method
139 */
140 public:
146
150 virtual ~Application(void) override;
151
152 /* *************************************************************************************
153 * Operator Method
154 */
155
156 /* *************************************************************************************
157 * Override - ufm::lang::Updatable
158 */
159 public:
163 virtual void update(void) override;
164
165 /* *************************************************************************************
166 * Override - ufm::lang::Runnable
167 */
168 public:
172 virtual void run(void) override;
173
174 /* *************************************************************************************
175 * Public Method
176 */
177 public:
183 virtual bool enqueue(Application::Listener& application);
184
190 virtual bool removeFromQueue(Application::Listener& application);
191
197 virtual bool markForRemoval(Application::Listener& application);
198
203 inline void setUserTask(ufm::func::Runnable* task) {
204 this->vUserTask = (task) ? task : this;
205 }
206
207 /* *************************************************************************************
208 * Protected Method
209 */
210
211 /* *************************************************************************************
212 * Private Method
213 */
214
215 /* *************************************************************************************
216 * Static Variable
217 */
218
219 /* *************************************************************************************
220 * Static Method
221 */
222};
223
224/* ***************************************************************************************
225 * Class/Interface/Struct/Enum
226 */
227
295 /* *************************************************************************************
296 * Method
297 */
301 virtual void onCreate(void) abstract;
302
307 virtual bool onInitialize(void) abstract;
308
312 virtual void onRun(void) abstract;
313
318 virtual bool onStop(void) abstract;
319
323 virtual void onDestroy(void) abstract;
324
330};
331
332/* ***************************************************************************************
333 * End of file
334 */
335
336#endif /* MFRAME_6480DBEC_851F_4E8B_BC37_5C742C6672AF */
物件基底類別
Definition Object.h:63
應用程式處理器類別,負責管理應用程式的生命週期狀態與資源使用率。
Definition ApplicationHandle.h:107
應用程式管理器,管理應用程式實例的完整生命週期。
Definition Application.h:107
virtual bool markForRemoval(Application::Listener &application)
標記應用程式準備移除。
virtual void update(void) override
更新物件狀態。
void setUserTask(ufm::func::Runnable *task)
設定使用者任務。
Definition Application.h:203
virtual void run(void) override
執行預定義操作。
virtual ~Application(void) override
解構 Application Manager。
virtual bool enqueue(Application::Listener &application)
加入應用程式至管理佇列。
virtual bool removeFromQueue(Application::Listener &application)
移除指定應用程式。
Application(ufm::util::PArraySet &&set)
建構 Application Manager,指定 PArraySet。
基於陣列的集合容器實作
Definition PArraySet.h:155
Definition Iterable.h:28
[Interface] 可執行函數式介面
Definition Runnable.h:40
[Interface] 定義可更新的物件介面
Definition Updatable.h:38
應用程式生命週期監聽介面,定義應用程式的基本生命週期方法。
Definition Application.h:294
virtual void onDestroy(void) override
停止後呼叫,用於釋放資源。
virtual void onCreate(void) override
建立時呼叫,用於初始資源配置。
virtual bool onStop(void) override
停止。
virtual bool onInitialize(void) override
初始化。
virtual void onRun(void) override
主要執行方法,執行狀態下重複呼叫。
virtual ufm::util::ApplicationHandle & getApplicationHandle(void) override
取得處理器。