mFrame
載入中...
搜尋中...
無符合項目
TerminalCommandReboot.h
1
7#ifndef MFRAME_773A9360_7340_4964_98F6_5588F26B5B25
8#define MFRAME_773A9360_7340_4964_98F6_5588F26B5B25
9
10/* ***************************************************************************************
11 * Include
12 */
13
14//----------------------------------------------------------------------------------------
15#include "./../func/Predicate.h"
16#include "./../lang/Object.h"
17#include "./../term/TerminalControl.h"
18#include "./../term/TerminalListener.h"
19#include "./../util/Console.h"
20
21//----------------------------------------------------------------------------------------
22
23/* ***************************************************************************************
24 * Namespace
25 */
26namespace ufm::term {
27 class TerminalCommandReboot;
28} // namespace ufm::term
29
30/* ***************************************************************************************
31 * Class/Interface/Struct/Enum
32 */
53 : public ufm::lang::Object,
55 public ufm::func::Predicate<ufm::term::TerminalControl>,
57 /* *************************************************************************************
58 * Variable
59 */
60 private:
61 const char* const vCommand;
63 int vDelay;
64 int vSecond;
65
66 /* *************************************************************************************
67 * Abstract Method
68 */
69
70 /* *************************************************************************************
71 * Construct Method
72 */
73 public:
85 TerminalCommandReboot(const char* command = TEXT_COMMAND) noexcept;
86
93 virtual ~TerminalCommandReboot(void) override;
94
95 /* *************************************************************************************
96 * Operator Method
97 */
98
99 /* *************************************************************************************
100 * Override - ufm::term::TerminalListener
101 */
102 public:
108 virtual const char* getCommand(void) const override;
109
115 virtual const char* getDescription(void) const override;
116
125 virtual bool onCommand(ufm::util::LineReader& lineReader,
126 ufm::term::TerminalControl& control) override;
127
140 virtual bool onTabComplete(ufm::util::LineReader& lineReader,
141 ufm::lang::Appendable& appendable,
142 ufm::term::TerminalControl& control) override;
143
144 /* *************************************************************************************
145 * Override - ufm::func::Predicate<ufm::term::TerminalControl>
146 */
147 public:
157 virtual bool test(ufm::term::TerminalControl& t) override;
158
159 /* *************************************************************************************
160 * Override - ufm::util::Console::Event
161 */
162 public:
172 virtual void onControlKey(ufm::util::Console::KeyControl key, bool alt) override;
173
183 virtual void onFunctionKey(ufm::util::Console::KeyFunction key, bool alt) override;
184
194 virtual void onKey(char key, bool alt) override;
195 /* *************************************************************************************
196 * Public Method
197 */
198 public:
207 bool isRebooting(void) const;
208
218 bool cancelReboot(void);
219
220 /* *************************************************************************************
221 * Protected Method
222 */
223
224 /* *************************************************************************************
225 * Private Method
226 */
227 private:
236 void printUsage(ufm::io::PrintStream& out) const;
237
238 /* *************************************************************************************
239 * Static Variable
240 */
241 public:
242 static constexpr const char* const TEXT_COMMAND = "reboot";
243
244 /* *************************************************************************************
245 * Static Method
246 */
247};
248
249/* ***************************************************************************************
250 * End of file
251 */
252
253#endif /* MFRAME_773A9360_7340_4964_98F6_5588F26B5B25 */
格式化輸出串流
Definition PrintStream.h:43
物件基底類別
Definition Object.h:63
終端機系統重啟命令類別
Definition TerminalCommandReboot.h:56
virtual const char * getCommand(void) const override
取得命令名稱。
bool isRebooting(void) const
檢查系統是否正在執行重啟程序
virtual const char * getDescription(void) const override
取得命令描述。
virtual bool onTabComplete(ufm::util::LineReader &lineReader, ufm::lang::Appendable &appendable, ufm::term::TerminalControl &control) override
當按下 Tab 鍵時執行自動補全功能
virtual void onKey(char key, bool alt) override
處理一般字元鍵事件
static constexpr const char *const TEXT_COMMAND
預設命令名稱
Definition TerminalCommandReboot.h:242
virtual bool onCommand(ufm::util::LineReader &lineReader, ufm::term::TerminalControl &control) override
執行命令。
virtual ~TerminalCommandReboot(void) override
解構終端機系統重啟命令物件
virtual void onControlKey(ufm::util::Console::KeyControl key, bool alt) override
處理控制鍵按鍵事件
virtual void onFunctionKey(ufm::util::Console::KeyFunction key, bool alt) override
處理功能鍵事件
TerminalCommandReboot(const char *command=TEXT_COMMAND) noexcept
建構新的終端機系統重啟命令物件
virtual bool test(ufm::term::TerminalControl &t) override
測試指定的終端機控制物件是否符合重啟條件
bool cancelReboot(void)
取消進行中的重啟操作
KeyControl
控制鍵列舉
Definition Console.h:159
KeyFunction
功能鍵列舉
Definition Console.h:199
Definition ElapsedTimer.h:29
行資料讀取器,提供從緩衝區解析字串、數值、布林等多種型態的資料。
Definition LineReader.h:58
Definition Terminal.h:31
針對類型 T 的物件進行條件測試的 Predicate 介面。
Definition Predicate.h:39
資料附加介面 (Appendable)
Definition Appendable.h:43
終端機控制介面
Definition TerminalControl.h:57
終端機命令介面
Definition TerminalListener.h:38
鍵盤事件處理介面
Definition Console.h:230