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

計時器任務排程器 更多...

#include <TimerScheduler.h>

類別ufm::util::TimerScheduler的繼承圖:
ufm::lang::Object ufm::lang::Updatable ufm::util::Container ufm::lang::NonCopyable ufm::lang::Interface

複合項目

struct  Block
 計時器任務排程資料塊 更多...
 
struct  Task
 計時器任務抽象介面 更多...
 

公開方法(Public Methods)

 TimerScheduler (const ufm::lang::Memory &memory)
 建構計時器排程器
 
template<size_t N>
 TimerScheduler (uint32(&buffer)[N])
 建構計時器排程器(模板版本)
 
virtual ~TimerScheduler (void) override
 解構計時器排程器
 
virtual void clear (void) override
 從此集合中刪除所有元素(可選操作)
 
virtual bool isEmpty (void) const override
 檢查此集合是否不包含任何元素
 
virtual int size (void) const override
 返回此集合中的元素數量
 
virtual void update (void) override
 更新方法
 
bool schedule (Task &task, uint64 delayMicroseconds)
 排程延遲任務(微秒精度)
 
bool scheduleAtMilliseconds (Task &task, uint64 delayMilliseconds)
 排程延遲任務(毫秒精度)
 
bool scheduleAtSeconds (Task &task, uint64 delaySeconds)
 排程延遲任務(秒精度)
 
- 公開方法(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
 禁止複製賦值運算子
 

詳細描述

計時器任務排程器

TimerScheduler 提供了一個基於時間的任務排程系統, 允許註册延遲執行的任務。此類別管理一個任務佇列, 並在指定的時間點執行相應的任務。

主要功能包括:

  • 延遲任務排程(支援微秒、毫秒、秒級精度)
  • 任務佇列管理
  • 自動任務執行與清理
此類別繼承自多個介面,提供完整的容器和更新功能
參閱
ufm::lang::Object
ufm::lang::Updatable
ufm::util::Container

建構子與解構子說明文件

◆ TimerScheduler() [1/2]

ufm::util::TimerScheduler::TimerScheduler ( const ufm::lang::Memory & memory)

建構計時器排程器

使用指定的記憶體區域初始化計時器排程器。 此記憶體將用於儲存任務佇列和相關資料結構。

參數
memory用於排程器內部資料結構的記憶體區域

◆ TimerScheduler() [2/2]

template<size_t N>
ufm::util::TimerScheduler::TimerScheduler ( uint32(&) buffer[N])
inline

建構計時器排程器(模板版本)

使用指定大小的緩衝區陣列初始化計時器排程器。 此版本提供了類型安全的陣列介面。

樣版參數
N緩衝區陣列的元素數量
參數
buffer用於排程器的 uint32 陣列緩衝區

◆ ~TimerScheduler()

virtual ufm::util::TimerScheduler::~TimerScheduler ( void )
overridevirtual

解構計時器排程器

清理所有待執行的任務並釋放相關資源。 確保在物件銷毀時所有任務都被適當處理。

函式成員說明文件

◆ clear()

virtual void ufm::util::TimerScheduler::clear ( void )
overridevirtual

從此集合中刪除所有元素(可選操作)

此方法執行後,集合將變為空狀態。請注意,某些容器實作可能不支援此操作。

例外
如果容器不支援清空操作,實作類別可能會拋出例外

實作 ufm::util::Container.

◆ isEmpty()

virtual bool ufm::util::TimerScheduler::isEmpty ( void ) const
overridevirtual

檢查此集合是否不包含任何元素

傳回值
true 如果此集合不包含元素,false 否則

實作 ufm::util::Container.

◆ schedule()

bool ufm::util::TimerScheduler::schedule ( Task & task,
uint64 delayMicroseconds )

排程延遲任務(微秒精度)

將指定的任務加入排程佇列,在延遲指定微秒數後執行。 此方法提供最高精度的時間控制。

參數
task要排程的任務物件
delayMicroseconds延遲執行的微秒數
傳回值
true 任務成功加入排程佇列
false 排程失敗(可能因為佇列已滿或其他錯誤)

◆ scheduleAtMilliseconds()

bool ufm::util::TimerScheduler::scheduleAtMilliseconds ( Task & task,
uint64 delayMilliseconds )
inline

排程延遲任務(毫秒精度)

將指定的任務加入排程佇列,在延遲指定毫秒數後執行。 此方法為常用的毫秒級延遲提供便利介面。

參數
task要排程的任務物件
delayMilliseconds延遲執行的毫秒數
傳回值
true 任務成功加入排程佇列
false 排程失敗(可能因為佇列已滿或其他錯誤)

◆ scheduleAtSeconds()

bool ufm::util::TimerScheduler::scheduleAtSeconds ( Task & task,
uint64 delaySeconds )
inline

排程延遲任務(秒精度)

將指定的任務加入排程佇列,在延遲指定秒數後執行。 此方法為長時間延遲提供便利介面。

參數
task要排程的任務物件
delaySeconds延遲執行的秒數
傳回值
true 任務成功加入排程佇列
false 排程失敗(可能因為佇列已滿或其他錯誤)

◆ size()

virtual int ufm::util::TimerScheduler::size ( void ) const
overridevirtual

返回此集合中的元素數量

如果此集合包含超過 INT_MAX 個元素,則返回 INT_MAX。

傳回值
此集合中的元素數量,範圍為 0 到 INT_MAX

實作 ufm::util::Container.

◆ update()

virtual void ufm::util::TimerScheduler::update ( void )
overridevirtual

更新方法

當系統需要更新物件狀態時被呼叫, 實現類應在此方法中進行必要的狀態更新邏輯。

實作 ufm::lang::Updatable.


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