mFrame
載入中...
搜尋中...
無符合項目
TerminalIndex.h
1
7#ifndef MFRAME_9F073801_76A1_4702_AB62_31A0D6EF56A5
8#define MFRAME_9F073801_76A1_4702_AB62_31A0D6EF56A5
9
10/* ***************************************************************************************
11 * Include
12 */
13
14//----------------------------------------------------------------------------------------
15#include "./../lang/Object.h"
16#include "./../term/TerminalControl.h"
17#include "./../term/TerminalHelper.h"
18#include "./../util/PArraySet.h"
19
20//----------------------------------------------------------------------------------------
21
22/* ***************************************************************************************
23 * Namespace
24 */
25namespace ufm::term {
26 class TerminalIndex;
27} // namespace ufm::util
28
29/* ***************************************************************************************
30 * Class/Interface/Struct/Enum
31 */
32
57 /* *************************************************************************************
58 * Variable
59 */
60 private:
61 ufm::util::PArraySet vListenerSet;
63 const char* vName;
64 const char* vDescription;
65
66 /* *************************************************************************************
67 * Abstract Method
68 */
69
70 /* *************************************************************************************
71 * Construct Method
72 */
73 public:
86 const char* name = "",
87 const char* description = "") noexcept;
88
98 inline TerminalIndex(int length = 16,
99 const char* name = "",
100 const char* description = "")
101 : TerminalIndex(ufm::util::PArraySet(length), name, description) {
102 return;
103 }
104
115 const char* name = "",
116 const char* description = "")
117 : TerminalIndex(ufm::util::PArraySet(static_cast<ufm::lang::Memory&&>(memory)),
118 name,
119 description) {
120 return;
121 }
122
130 virtual ~TerminalIndex(void) override;
131
132 /* *************************************************************************************
133 * Operator Method
134 */
135
136 /* *************************************************************************************
137 * Override - ufm::term::TerminalListener
138 */
139 public:
151 virtual const char* getCommand(void) const override;
152
162 virtual const char* getDescription(void) const override;
163
179 virtual bool onCommand(ufm::util::LineReader& lineReader,
180 ufm::term::TerminalControl& control) override;
181
198 virtual bool onTabComplete(ufm::util::LineReader& lineReader,
199 ufm::lang::Appendable& appendable,
200 ufm::term::TerminalControl& control) override;
201 /* *************************************************************************************
202 * Public Method
203 */
204 public:
220
235
250
259 void clear(void);
260
271 inline void setName(const char* name) {
272 this->vName = (name == nullptr) ? "" : name;
273 this->vHelper.setIndexName(name);
274 return;
275 }
276
287 inline const char* getName(void) const {
288 return this->vName;
289 }
290
301 inline void setDescription(const char* description) {
302 this->vDescription = (description == nullptr) ? "" : description;
303 }
304
305 /* *************************************************************************************
306 * Protected Method
307 */
308
309 /* *************************************************************************************
310 * Private Method
311 */
312
313 /* *************************************************************************************
314 * Static Variable
315 */
316
317 /* *************************************************************************************
318 * Static Method
319 */
320};
321
322/* ***************************************************************************************
323 * End of file
324 */
325
326#endif /* MFRAME_9F073801_76A1_4702_AB62_31A0D6EF56A5 */
存儲資料的類別,提供動態記憶體管理功能。
Definition Memory.h:44
物件基底類別
Definition Object.h:63
終端機輔助類別,提供命令管理和執行功能
Definition TerminalHelper.h:50
void setIndexName(const char *indexName)
設定命令索引名稱
Definition TerminalHelper.h:172
終端機命令索引管理類別,提供命令註冊和查找功能
Definition TerminalIndex.h:56
TerminalIndex(ufm::lang::Memory memory, const char *name="", const char *description="")
使用指定記憶體建立 TerminalIndex 物件
Definition TerminalIndex.h:114
virtual bool onTabComplete(ufm::util::LineReader &lineReader, ufm::lang::Appendable &appendable, ufm::term::TerminalControl &control) override
處理終端機索引的 Tab 鍵補全功能
const char * getName(void) const
取得終端機索引名稱
Definition TerminalIndex.h:287
void setDescription(const char *description)
設定終端機索引描述
Definition TerminalIndex.h:301
bool addListener(ufm::term::TerminalListener &listener)
新增一個終端機命令監聽器
virtual const char * getDescription(void) const override
取得終端機索引的命令描述
virtual const char * getCommand(void) const override
取得終端機索引的命令名稱
void setName(const char *name)
設定終端機索引名稱
Definition TerminalIndex.h:271
virtual bool onCommand(ufm::util::LineReader &lineReader, ufm::term::TerminalControl &control) override
執行終端機索引的命令處理邏輯
ufm::term::TerminalListener * removeListener(const char *command)
根據命令名稱移除終端機命令監聽器
void clear(void)
清除所有終端機命令監聽器
virtual ~TerminalIndex(void) override
解構 TerminalIndex 物件
TerminalIndex(ufm::util::PArraySet pArraySet, const char *name="", const char *description="") noexcept
使用指定的陣列集合建立 TerminalIndex 物件
bool removeListener(ufm::term::TerminalListener &listener)
移除指定的終端機命令監聽器
行資料讀取器,提供從緩衝區解析字串、數值、布林等多種型態的資料。
Definition LineReader.h:58
PArraySet 類別
Definition PArraySet.h:40
Definition Terminal.h:31
資料附加介面 (Appendable)
Definition Appendable.h:43
禁止複製的結構
Definition NonCopyable.h:38
終端機控制介面
Definition TerminalControl.h:57
終端機命令介面
Definition TerminalListener.h:38