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
42 public ufm::func::Runnable {
43 /* *************************************************************************************
44 * Class/Interface/Struct/Enum
45 */
46 public:
47 struct Listener;
48
49 /* *************************************************************************************
50 * Variable
51 */
52 private:
53 ufm::util::PArraySet vApplications;
54 ufm::func::Runnable* vUserTask;
57 uint32 vTickMark;
58 uint32 vTaskTick;
59 bool vUpdating;
60
61 /* *************************************************************************************
62 * Abstract Method
63 */
64
65 /* *************************************************************************************
66 * Construct Method
67 */
68 public:
74
78 virtual ~Application(void) override;
79
80 /* *************************************************************************************
81 * Operator Method
82 */
83
84 /* *************************************************************************************
85 * Override - ufm::lang::Updatable
86 */
87 public:
91 virtual void update(void) override;
92
93 /* *************************************************************************************
94 * Override - ufm::lang::Runnable
95 */
96 public:
100 virtual void run(void) override;
101
102 /* *************************************************************************************
103 * Public Method
104 */
105 public:
111 virtual bool enqueue(Application::Listener& application);
112
118 virtual bool removeFromQueue(Application::Listener& application);
119
125 virtual bool markForRemoval(Application::Listener& application);
126
131 inline void setUserTask(ufm::func::Runnable* task) {
132 this->vUserTask = (task) ? task : this;
133 }
134
135 /* *************************************************************************************
136 * Protected Method
137 */
138
139 /* *************************************************************************************
140 * Private Method
141 */
142
143 /* *************************************************************************************
144 * Static Variable
145 */
146
147 /* *************************************************************************************
148 * Static Method
149 */
150};
151
152/* ***************************************************************************************
153 * Class/Interface/Struct/Enum
154 */
155
162 /* *************************************************************************************
163 * Method
164 */
168 virtual void onCreate(void) abstract;
169
174 virtual bool onInitialize(void) abstract;
175
179 virtual void onRun(void) abstract;
180
185 virtual bool onStop(void) abstract;
186
190 virtual void onDestroy(void) abstract;
191
197};
198
199/* ***************************************************************************************
200 * End of file
201 */
202
203#endif /* MFRAME_6480DBEC_851F_4E8B_BC37_5C742C6672AF */
物件基底類別
Definition Object.h:63
Application Handler 類別,負責管理應用程式的生命週期狀態與資源使用率。
Definition ApplicationHandle.h:40
應用程式管理器 管理所有應用程式實例的生命週期,包括創建、初始化、執行、停止、銷毀。 以 PArraySet 儲存並管理。
Definition Application.h:42
virtual bool markForRemoval(Application::Listener &application)
標記應用程式準備移除。
virtual void update(void) override
更新物件狀態。
void setUserTask(ufm::func::Runnable *task)
設定使用者任務。
Definition Application.h:131
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。
PArraySet 類別
Definition PArraySet.h:40
Definition Iterable.h:28
[Interface] 可執行函數式介面
Definition Runnable.h:40
[Interface] 定義可更新的物件介面
Definition Updatable.h:38
應用程式介面 定義基本生命週期方法:建立、初始化、執行、停止、銷毀。
Definition Application.h:161
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
取得處理器。