mFrame
載入中...
搜尋中...
無符合項目
TerminalHelper.h
1
7#ifndef MFRAME_E78A4B41_6A12_45BD_B662_73EDE44F403A
8#define MFRAME_E78A4B41_6A12_45BD_B662_73EDE44F403A
9
10/* ***************************************************************************************
11 * Include
12 */
13
14//----------------------------------------------------------------------------------------
15#include "../lang/Object.h"
16#include "./../term/TerminalListener.h"
17#include "./../util/Collection.h"
18
19//----------------------------------------------------------------------------------------
20
21/* ***************************************************************************************
22 * Namespace
23 */
24namespace ufm::term {
25 class TerminalHelper;
26} // namespace ufm::term
27
28/* ***************************************************************************************
29 * Class/Interface/Struct/Enum
30 */
31
51 /* *************************************************************************************
52 * Variable
53 */
54 private:
56 vListeners;
57 const char* vIndexName;
58
59 /* *************************************************************************************
60 * Abstract Method
61 */
62
63 /* *************************************************************************************
64 * Construct Method
65 */
66 public:
77 const char* indexName = "") noexcept;
78
86 virtual ~TerminalHelper(void) override;
87
88 /* *************************************************************************************
89 * Operator Method
90 */
91
92 /* *************************************************************************************
93 * Override - ufm::term::TerminalListener
94 */
95 public:
107 virtual const char* getCommand(void) const override;
108
118 virtual const char* getDescription(void) const override;
119
135 virtual bool onCommand(ufm::util::LineReader& lineReader,
136 ufm::term::TerminalControl& control) override;
137
154 virtual bool onTabComplete(ufm::util::LineReader& lineReader,
155 ufm::lang::Appendable& appendable,
156 ufm::term::TerminalControl& control) override;
157
158 /* *************************************************************************************
159 * Public Method
160 */
161 public:
173 inline void setIndexName(const char* indexName) {
174 this->vIndexName = (indexName == nullptr) ? "" : indexName;
175 return;
176 }
177
188 const char* getIndexName(void) const {
189 return this->vIndexName;
190 }
191
192 /* *************************************************************************************
193 * Protected Method
194 */
195
196 /* *************************************************************************************
197 * Private Method
198 */
199 private:
213 int showMatch(ufm::io::PrintStream& out, const char* key);
214
215 /* *************************************************************************************
216 * Static Variable
217 */
218
219 /* *************************************************************************************
220 * Static Method
221 */
222};
223
224/* ***************************************************************************************
225 * End of file
226 */
227
228#endif /* MFRAME_E78A4B41_6A12_45BD_B662_73EDE44F403A */
格式化輸出串流
Definition PrintStream.h:44
物件基底類別
Definition Object.h:63
終端機輔助類別,提供命令管理和執行功能
Definition TerminalHelper.h:50
const char * getIndexName(void) const
取得目前的命令索引名稱
Definition TerminalHelper.h:188
void setIndexName(const char *indexName)
設定命令索引名稱
Definition TerminalHelper.h:173
TerminalHelper(ufm::util::Collection< ufm::term::TerminalListener * > &listeners, const char *indexName="") noexcept
建構一個新的 TerminalHelper 物件
virtual bool onTabComplete(ufm::util::LineReader &lineReader, ufm::lang::Appendable &appendable, ufm::term::TerminalControl &control) override
處理 Tab 鍵補全功能
virtual const char * getDescription(void) const override
取得命令描述
virtual bool onCommand(ufm::util::LineReader &lineReader, ufm::term::TerminalControl &control) override
執行命令處理邏輯
virtual const char * getCommand(void) const override
取得命令名稱
Definition Terminal.h:33
終端機控制介面
Definition TerminalControl.h:59
終端機命令介面
Definition TerminalListener.h:38
集合介面,定義集合層次結構的根介面。
Definition Collection.h:171