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/Logger.h"
24#include "./../util/PArraySet.h"
25#include "./../util/Scanner.h"
26#include "./../util/SinkLogger.h"
56 uint32 vAutoRefreshMicroseconds;
59 const char* vHostName;
102 return this->vConsole;
124 return this->vScanner;
269 virtual void onKey(
char key,
bool alt)
override;
288 virtual int putByte(
const char data)
override;
309 virtual int put(
const void* pointer,
int length)
override;
323 return this->vConsole;
345 return this->vSinkLogger;
356 return this->vScanner;
379 this->vAutoRefreshMicroseconds = microseconds;
390 void checkAutoRefresh(
bool forceDelay =
false);
格式化輸出串流
Definition PrintStream.h:44
動態記憶體管理類別
Definition Memory.h:38
物件基底類別
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 refreshLine(bool keepCursor=true) override
換到下一行並重新刷新主機名稱與緩衝區資料
virtual void setHostName(const char *hostName) override
設定終端機主機名稱
ufm::lang::Readable & readable(void)
取得資料讀取介面
Definition Terminal.h:322
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:333
ufm::util::SinkLogger & getSinkLogger(void)
取得終端機日誌記錄器
Definition Terminal.h:344
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 int remaining(void) const override
取得緩衝區剩餘空閒字節數。
virtual void onControlKey(ufm::util::Console::KeyControl key, bool alt) override
處理鍵盤按鍵事件
virtual const char * getHostName(void) const override
取得終端機主機名稱
void setAutoRefreshMicroseconds(uint32 microseconds)
設定自動刷新間隔時間
Definition Terminal.h:378
virtual int put(ufm::lang::Readable &readable) override
從 Readable 物件附加資料至緩衝區
virtual void update(void) override
物件狀態更新方法
ufm::util::Scanner & scanner(void)
取得輸入解析掃描器
Definition Terminal.h:355
ufm::term::TerminalIndex & index(void)
取得終端機索引
Definition Terminal.h:366
virtual ufm::io::PrintStream & out(void) override
取得終端機輸出列印資料流
virtual ufm::util::Logger & logger(void) override
取得終端機的日誌記錄器
virtual void setPasswd(bool passwd) override
設定密碼輸入模式
終端機命令索引管理類別,提供命令註冊和查找功能
Definition TerminalIndex.h:56
終端機輸入解析器,提供鍵盤輸入解析和事件處理功能。
Definition Console.h:128
KeyControl
控制鍵列舉
Definition Console.h:255
KeyFunction
功能鍵列舉
Definition Console.h:295
日誌記錄器類別,提供結構化的日誌記錄功能。
Definition Logger.h:69
高階緩衝區資料解析器,提供多功能的資料流處理能力。
Definition Scanner.h:103
日誌接收器類別,負責實際的日誌輸出處理。
Definition SinkLogger.h:89
ufm::io::PrintStream & printStream(void)
取得原始的 PrintStream 物件參考,不受日誌級別過濾影響。
Definition SinkLogger.h:190
針對類型 T 的物件進行條件測試的 Predicate 介面。
Definition Predicate.h:39
資料附加介面 (Appendable)
Definition Appendable.h:43
[Interface] 定義資料讀取介面
Definition Readable.h:46
[Interface] 定義可更新的物件介面
Definition Updatable.h:38
終端機控制介面
Definition TerminalControl.h:59
鍵盤事件處理介面
Definition Console.h:326