OMTimerManager 類別

OMTimerManager 會為使用單一計時器作業的所有執行緒,提供計時器服務。 該類別在標頭檔 timer.h 中進行宣告。

OMTimerManager 會管理逾時要求,並將逾時事件發出給系統物件。 OMTimerManager 是單態作用中物件。 在架構起始設定期間,會建立單態,且會建立單一新執行緒,以管理逾時要求。

註: 在 Rational® Rhapsody® 所產生的每一個應用程式中,個別執行緒會提供應用程式的計時器支援。 如果您的應用程式是單一執行緒,則 Rational Rhapsody 產生的應用程式具有兩個執行緒:一個用於應用程式,一個用於計時器支援。

OMThreadTimer 繼承自 OMTimerManager,並執行架構及應用程式的實際計時服務。 如需 OMThreadTimer 的相關資訊,請參閱OMThreadTimer 類別

OMTimerManager 可以實作兩個時間模型:

模擬時間對除錯及演算法驗證非常有用。

模擬時間支援處於執行時期(將參數提供給應用程式起始設定中的架構)。 不過,若要在即時與模擬時間之間切換,您需要重新產生並建置程式碼。

在現行版本中,會在起始設定時,透過 OXF::initisRealTime 參數,處理模擬時間。

下列方法會與模擬時間模式搭配使用:initOMTimerManagerDefaults 類別、goNext(專用)及 goNextAndPost

屬性摘要
overflowMark - 指定用於判定現行系統時間是否「已溢位」的值。
建構摘要
OMTimerManager - 建構 OMTimerManager 物件
~OMTimerManager
毀損 OMTimerManager 物件
方法摘要
action - 將到期的逾時要求傳送至相關的執行緒,接著會在其中將其插入至執行緒的事件佇列。
cbkBridge
是透過 timeTickCbk(專用)方法,從作業系統取得岔斷的橋接
clearInstance
清除計時器管理程式的單態實例
consumeTime
在模擬時間模式中使用,以模擬時間消耗
destroyTimer
清除計時器管理程式單態實例
getElapsedTime
傳回 m_Time(現行系統時間)的值
goNextAndPost
在模擬時間模式中使用
init
啟動計時器時間計數
initInstance
起始設定單態實例
instance
建立計時器管理程式的單態實例
resume
由架構用來在動畫期間,回復計時器
set
將逾時要求委派給 OMTimerManager
setElapsedTime
設定 m_Time(現行系統時間)的值
softUnschedTm
從到期清單中,移除特定的逾時
suspend
由架構用來在動畫期間,暫停計時器
unschedTm
取消逾時要求

屬性

overflowMark

此受保護的屬性指定用於判定現行系統時間 (m_Time) 是否「已溢位」的值。 m_Time 會實作為不帶正負號的 long 整數;其值上限依賴於實作。

其定義方式如下:

RP_FRAMEWORK_DLL static const timeUnit
        overflowMark;

timeUnit 方法在 rawtypes.h 中定義,如下所示:

typedef unsigned long timeUnit;

overflowMark 的值在 timer.cpp 中指定,如下所示:

const timeUnit OMTimerManager::overflowMark =
        0x80000000;

post 方法會在其取得指向資料堆中現行逾時要求的指標之後,將 m_TimeoverflowMark 相比較。 如果 m_Time >= overflowMark,則 post 方法會對資料堆反覆運算,以調整每個逾時要求的 dueTime,並重設 m_Time,如下所示:

m_Time &= ~overflowMark;

更新 dueTimem_Time 會使用系統資源。 您應該小心地針對應用程式監視 m_Time


意見回饋