7#ifndef MFRAME_7922BF1A_6AEA_40C3_9E63_4E4FFEA751DC
8#define MFRAME_7922BF1A_6AEA_40C3_9E63_4E4FFEA751DC
15#include "./../io/PrintStream.h"
16#include "./../lang/Object.h"
17#include "./../lang/Updatable.h"
18#include "./../term/TerminalControl.h"
19#include "./../term/TerminalIndex.h"
20#include "./../term/TerminalListener.h"
21#include "./../util/Console.h"
22#include "./../util/ElapsedTimer.h"
23#include "./../util/PArraySet.h"
24#include "./../util/Scanner.h"
55 const char* vHostName;
98 return this->vConsole;
109 return this->vPrintStream;
120 return this->vScanner;
255 virtual void onKey(
char key,
bool alt)
override;
274 virtual int putByte(
const char data)
override;
295 virtual int put(
const void* pointer,
int length)
override;
309 return this->vConsole;
320 return this->vPrintStream;
331 return this->vScanner;
格式化輸出串流
Definition PrintStream.h:43
存儲資料的類別,提供動態記憶體管理功能。
Definition Memory.h:44
物件基底類別
Definition Object.h:63
virtual bool isPasswd(void) const override
檢查是否啟用密碼輸入模式
virtual void pause(ufm::func::Predicate< ufm::term::TerminalControl > *test, ufm::util::Console::Event *consoleEvent=nullptr) override
暫時暫停終端機控制處理,直到指定條件滿足
virtual void setHostName(const char *hostName) override
設定終端機主機名稱
ufm::lang::Readable & readable(void)
取得資料讀取介面
Definition Terminal.h:308
virtual int put(const void *pointer, int length) override
從記憶體指標附加資料至緩衝區
virtual ~Terminal(void) override
解構終端機物件
virtual ufm::lang::Readable & in(void) override
取得終端機輸入資料流
ufm::io::PrintStream & printStream(void)
取得列印輸出串流
Definition Terminal.h:319
Terminal(ufm::lang::Readable &readable, ufm::io::PrintStream &printStream, ufm::util::Scanner &&scanner, ufm::lang::Memory indexSetBuffer)
建構終端機物件
virtual void onKey(char key, bool alt) override
處理普通鍵事件
virtual int putByte(const char data) override
輸入單一字節至緩衝區
virtual void onFunctionKey(ufm::util::Console::KeyFunction key, bool alt) override
處理功能鍵事件
virtual void refreshLine(bool nextLine=true) override
換到下一行並重新刷新主機名稱與緩衝區資料
virtual int remaining(void) const override
取得緩衝區剩餘空閒字節數。
virtual void onControlKey(ufm::util::Console::KeyControl key, bool alt) override
處理鍵盤按鍵事件
virtual const char * getHostName(void) const override
取得終端機主機名稱
virtual int put(ufm::lang::Readable &readable) override
從 Readable 物件附加資料至緩衝區
virtual void update(void) override
物件狀態更新方法
ufm::util::Scanner & scanner(void)
取得輸入解析掃描器
Definition Terminal.h:330
ufm::term::TerminalIndex & index(void)
取得終端機索引
Definition Terminal.h:341
virtual ufm::io::PrintStream & out(void) override
取得終端機輸出列印資料流
virtual void setPasswd(bool passwd) override
設定密碼輸入模式
終端機命令索引管理類別,提供命令註冊和查找功能
Definition TerminalIndex.h:56
終端機輸入解析器
Definition Console.h:41
KeyControl
控制鍵列舉
Definition Console.h:159
KeyFunction
功能鍵列舉
Definition Console.h:199
高階緩衝區資料解析器,支援多型態資料讀取、標記、插入與迭代。
Definition Scanner.h:60
針對類型 T 的物件進行條件測試的 Predicate 介面。
Definition Predicate.h:39
資料附加介面 (Appendable)
Definition Appendable.h:43
[Interface] 定義資料讀取介面
Definition Readable.h:46
[Interface] 定義可更新的物件介面
Definition Updatable.h:38
終端機控制介面
Definition TerminalControl.h:57
鍵盤事件處理介面
Definition Console.h:230