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 const char* vIndexName;
57
58 /* *************************************************************************************
59 * Abstract Method
60 */
61
62 /* *************************************************************************************
63 * Construct Method
64 */
65 public:
76 const char* indexName = "") noexcept;
77
85 virtual ~TerminalHelper(void) override;
86
87 /* *************************************************************************************
88 * Operator Method
89 */
90
91 /* *************************************************************************************
92 * Override - ufm::term::TerminalListener
93 */
94 public:
106 virtual const char* getCommand(void) const override;
107
117 virtual const char* getDescription(void) const override;
118
134 virtual bool onCommand(ufm::util::LineReader& lineReader,
135 ufm::term::TerminalControl& control) override;
136
153 virtual bool onTabComplete(ufm::util::LineReader& lineReader,
154 ufm::lang::Appendable& appendable,
155 ufm::term::TerminalControl& control) override;
156
157 /* *************************************************************************************
158 * Public Method
159 */
160 public:
172 inline void setIndexName(const char* indexName) {
173 this->vIndexName = (indexName == nullptr) ? "" : indexName;
174 return;
175 }
176
187 const char* getIndexName(void) const {
188 return this->vIndexName;
189 }
190
191 /* *************************************************************************************
192 * Protected Method
193 */
194
195 /* *************************************************************************************
196 * Private Method
197 */
198 private:
212 int showMatch(ufm::io::PrintStream& out, const char* key);
213
214 /* *************************************************************************************
215 * Static Variable
216 */
217
218 /* *************************************************************************************
219 * Static Method
220 */
221};
222
223/* ***************************************************************************************
224 * End of file
225 */
226
227#endif /* MFRAME_E78A4B41_6A12_45BD_B662_73EDE44F403A */
格式化輸出串流
Definition PrintStream.h:43
物件基底類別
Definition Object.h:63
終端機輔助類別,提供命令管理和執行功能
Definition TerminalHelper.h:50
const char * getIndexName(void) const
取得目前的命令索引名稱
Definition TerminalHelper.h:187
void setIndexName(const char *indexName)
設定命令索引名稱
Definition TerminalHelper.h:172
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:31
終端機控制介面
Definition TerminalControl.h:57
終端機命令介面
Definition TerminalListener.h:38
[Interface] 集合介面
Definition Collection.h:46