mFrame
載入中...
搜尋中...
無符合項目
ufm::term::TerminalIndex 類別 參考文件

終端機命令索引管理類別,提供命令註冊和查找功能 更多...

#include <TerminalIndex.h>

類別ufm::term::TerminalIndex的繼承圖:
ufm::lang::Object ufm::term::TerminalListener ufm::lang::NonCopyable ufm::lang::Interface

公開方法(Public Methods)

 TerminalIndex (ufm::util::PArraySet pArraySet, const char *name="", const char *description="") noexcept
 使用指定的陣列集合建立 TerminalIndex 物件
 
 TerminalIndex (int length=16, const char *name="", const char *description="")
 使用指定長度建立 TerminalIndex 物件
 
 TerminalIndex (ufm::lang::Memory memory, const char *name="", const char *description="")
 使用指定記憶體建立 TerminalIndex 物件
 
virtual ~TerminalIndex (void) override
 解構 TerminalIndex 物件
 
virtual const char * getCommand (void) const override
 取得終端機索引的命令名稱
 
virtual const char * getDescription (void) const override
 取得終端機索引的命令描述
 
virtual bool onCommand (ufm::util::LineReader &lineReader, ufm::term::TerminalControl &control) override
 執行終端機索引的命令處理邏輯
 
virtual bool onTabComplete (ufm::util::LineReader &lineReader, ufm::lang::Appendable &appendable, ufm::term::TerminalControl &control) override
 處理終端機索引的 Tab 鍵補全功能
 
bool addListener (ufm::term::TerminalListener &listener)
 新增一個終端機命令監聽器
 
ufm::term::TerminalListenerremoveListener (const char *command)
 根據命令名稱移除終端機命令監聽器
 
bool removeListener (ufm::term::TerminalListener &listener)
 移除指定的終端機命令監聽器
 
void clear (void)
 清除所有終端機命令監聽器
 
void setName (const char *name)
 設定終端機索引名稱
 
const char * getName (void) const
 取得終端機索引名稱
 
void setDescription (const char *description)
 設定終端機索引描述
 
- 公開方法(Public Methods) 繼承自 ufm::lang::Object
void * operator new (size_t n)
 使用運算子 new 分配記憶體
 
void * operator new (size_t n, void *p)
 在指定記憶體上調用運算子 new
 
virtual ufm::lang::ObjectgetObject (void) override
 取得對應的 Object 物件
 
void delay (int milliseconds) const
 延遲指定的毫秒數進行執行緒等待
 
bool equals (Object *object) const
 判斷與另一物件是否為相同參照(指標型態比較)
 
bool equals (Object &object) const
 判斷與另一物件是否為相同參照(參照型態比較)
 
void wait (void) const
 使當前線程等待直到被通知
 
bool wait (int timeout) const
 等待通知或超時
 
bool yield (void) const
 讓執行緒讓渡控制權給同優先權的下一個執行緒
 
int lock (void) const
 核心鎖定,鎖定期間禁止線程切換
 
int unlock (void) const
 核心解鎖
 
ufm::sys::ThreadcurrentThread (void) const
 取得當前執行緒指標
 
virtual int hashcode (void) const
 返回對象的哈希碼值。支持這種方法是為了散列表,如HashMap提供的那樣。
 
- 公開方法(Public Methods) 繼承自 ufm::lang::Interface
virtual ~Interface (void)=default
 虛擬析構函式
 
- 公開方法(Public Methods) 繼承自 ufm::lang::NonCopyable
 NonCopyable (void)=default
 建構一個新的 NonCopyable 物件
 
 NonCopyable (const NonCopyable &other)=delete
 禁止複製建構子
 
NonCopyableoperator= (const NonCopyable &other)=delete
 禁止複製賦值運算子
 

詳細描述

終端機命令索引管理類別,提供命令註冊和查找功能

TerminalIndex 是一個終端機命令管理系統的核心類別,負責統一管理 多個終端機命令監聽器,並提供命令的註冊、移除、查找和執行功能。 此類別繼承自 Object、TerminalListener 和 NonCopyable。

主要功能包括:

  • 管理終端機命令監聽器集合
  • 提供命令的動態註冊和移除
  • 支援命令名稱和描述的配置
  • 實作 Tab 補全功能
  • 提供命令執行介面
作者
ZxyKira
日期
2020
版本
1.0
參閱
TerminalListener
TerminalHelper

建構子與解構子說明文件

◆ TerminalIndex() [1/3]

ufm::term::TerminalIndex::TerminalIndex ( ufm::util::PArraySet pArraySet,
const char * name = "",
const char * description = "" )
noexcept

使用指定的陣列集合建立 TerminalIndex 物件

參數
pArraySet用於儲存命令監聽器的陣列集合
name終端機索引名稱,預設為空字串
description終端機索引描述,預設為空字串
此建構函式不會拋出例外
參閱
TerminalIndex(int, const char*, const char*)
TerminalIndex(ufm::lang::Memory, const char*, const char*)

◆ TerminalIndex() [2/3]

ufm::term::TerminalIndex::TerminalIndex ( int length = 16,
const char * name = "",
const char * description = "" )
inline

使用指定長度建立 TerminalIndex 物件

參數
length命令監聽器陣列的長度,預設為 16
name終端機索引名稱,預設為空字串
description終端機索引描述,預設為空字串
這是一個內聯建構函式,會委派給主建構函式

◆ TerminalIndex() [3/3]

ufm::term::TerminalIndex::TerminalIndex ( ufm::lang::Memory memory,
const char * name = "",
const char * description = "" )
inline

使用指定記憶體建立 TerminalIndex 物件

參數
memory用於儲存命令監聽器的記憶體區塊
name終端機索引名稱,預設為空字串
description終端機索引描述,預設為空字串
這是一個內聯建構函式,會委派給主建構函式

◆ ~TerminalIndex()

virtual ufm::term::TerminalIndex::~TerminalIndex ( void )
overridevirtual

解構 TerminalIndex 物件

清理所有相關資源,包括已註冊的命令監聽器。

這是虛擬解構函式,確保多型物件正確銷毀

函式成員說明文件

◆ addListener()

bool ufm::term::TerminalIndex::addListener ( ufm::term::TerminalListener & listener)

新增一個終端機命令監聽器

將指定的終端機命令監聽器註冊到此索引中,使其能夠被終端機系統識別和執行。

參數
listener要新增的終端機命令監聽器參考
傳回值
true 新增成功
false 新增失敗,可能是因為命令已存在、記憶體不足或其他錯誤
不能新增重複的命令名稱
參閱
removeListener(const char*)
removeListener(ufm::term::TerminalListener&)

◆ clear()

void ufm::term::TerminalIndex::clear ( void )

清除所有終端機命令監聽器

移除所有已註冊的終端機命令監聽器,重置索引為空狀態。

此操作不會銷毀監聽器物件,只是解除註冊
參閱
addListener()

◆ getCommand()

virtual const char * ufm::term::TerminalIndex::getCommand ( void ) const
overridevirtual

取得終端機索引的命令名稱

回傳此終端機索引所對應的命令名稱, 用於終端機系統識別和呼叫此索引。

傳回值
const char* 命令名稱字串,不可為 nullptr
此方法覆寫自 TerminalListener 介面
參閱
getName()

實作 ufm::term::TerminalListener.

◆ getDescription()

virtual const char * ufm::term::TerminalIndex::getDescription ( void ) const
overridevirtual

取得終端機索引的命令描述

回傳此終端機索引的詳細描述資訊,通常用於顯示說明或協助資訊。

傳回值
const char* 命令描述字串,不可為 nullptr
此方法覆寫自 TerminalListener 介面

實作 ufm::term::TerminalListener.

◆ getName()

const char * ufm::term::TerminalIndex::getName ( void ) const
inline

取得終端機索引名稱

回傳目前設定的終端機索引名稱。

傳回值
const char* 索引名稱字串,保證不為 nullptr
回傳值為內部儲存的指標,不應修改其內容
參閱
setName()

◆ onCommand()

virtual bool ufm::term::TerminalIndex::onCommand ( ufm::util::LineReader & lineReader,
ufm::term::TerminalControl & control )
overridevirtual

執行終端機索引的命令處理邏輯

當使用者輸入對應的命令時,此方法會被呼叫來處理命令執行。 會根據輸入的子命令來查找對應的監聽器並執行。

參數
lineReader當前行讀取器,提供命令列輸入的解析功能
control終端機控制介面,用於輸出結果和控制終端機行為
傳回值
true 命令執行成功
false 命令執行失敗或發生錯誤
此方法覆寫自 TerminalListener 介面
參閱
onTabComplete()

實作 ufm::term::TerminalListener.

◆ onTabComplete()

virtual bool ufm::term::TerminalIndex::onTabComplete ( ufm::util::LineReader & lineReader,
ufm::lang::Appendable & appendable,
ufm::term::TerminalControl & control )
overridevirtual

處理終端機索引的 Tab 鍵補全功能

當使用者按下 Tab 鍵時,此方法會被呼叫來提供輸入補全建議。 會搜尋已註冊的命令監聽器,提供符合輸入的命令選項。

參數
lineReader當前行讀取器,提供目前輸入內容的解析
appendable用於輸出補全結果的可附加介面
control終端機控制介面
傳回值
true 補全處理成功,有提供補全建議
false 補全處理失敗或無法提供建議
此方法覆寫自 TerminalListener 介面
參閱
onCommand()

實作 ufm::term::TerminalListener.

◆ removeListener() [1/2]

ufm::term::TerminalListener * ufm::term::TerminalIndex::removeListener ( const char * command)

根據命令名稱移除終端機命令監聽器

根據指定的命令名稱搜尋並移除對應的終端機命令監聽器。

參數
command要移除的終端機命令名稱
傳回值
ufm::term::TerminalListener* 若成功移除,回傳被移除的監聽器指標;否則回傳 nullptr
回傳的指標仍然有效,可以重新註冊或進行其他操作
參閱
addListener()
removeListener(ufm::term::TerminalListener&)

◆ removeListener() [2/2]

bool ufm::term::TerminalIndex::removeListener ( ufm::term::TerminalListener & listener)

移除指定的終端機命令監聽器

移除指定的終端機命令監聽器物件,從索引中解除註冊。

參數
listener要移除的終端機命令監聽器參考
傳回值
true 移除成功
false 移除失敗,可能是因為監聽器不存在或其他錯誤
參閱
addListener()
removeListener(const char*)

◆ setDescription()

void ufm::term::TerminalIndex::setDescription ( const char * description)
inline

設定終端機索引描述

更新此終端機索引的描述資訊。

參數
description要設定的新描述,如果為 nullptr 則設為空字串
這是一個內聯函式,效能較佳
參閱
getDescription()

◆ setName()

void ufm::term::TerminalIndex::setName ( const char * name)
inline

設定終端機索引名稱

更新此終端機索引的名稱,同時更新內部輔助工具的索引名稱。

參數
name要設定的新名稱,如果為 nullptr 則設為空字串
這是一個內聯函式,效能較佳
參閱
getName()

此類別(class) 文件是由下列檔案中產生: