OMEvent 類別

OMEvent 是 Rational® Rhapsody® 中定義之所有事件的基礎類別,程式碼產生器會從中隱含地衍生所有事件。 OMEvent 是抽象類別,在檔案 event.h. 中宣告

OMEvent 具有兩個重要的資料屬性:

您可以在 Rational Rhapsody 內容中以兩個層次指定事件 ID:個別事件 ID 或每個套件的基本 ID 號碼。透過使用基數,Rational Rhapsody 會為每個事件指派循序 ID 號碼。

繼承自 OMEvent 的每個物件及事件可以新增其他資料,以儲存事件特定資訊。 例如,如果您要傳送具有現行時間的事件,則您可以新增具有相關類型名稱的屬性,該事件將具有其他資料的存取權。

每個參數都由產生程式碼對映至繼承自 OMEvent 事件類別之資料成員。

OMEvent 也是兩個特殊類型事件的基礎類別:

一般兩個步驟即可產生事件,這兩個步驟封裝在架構的 GEN 巨集中:

  1. 事件類別會實例化,導致指向事件的指標。
  2. 透過將新事件指標新增至接收端的事件佇列,將事件排入佇列。

在實例化事件並將其新增至接收端的事件佇列後,事件便已備妥可供「傳送」。傳送作業能夠成功是假設傳送端與接收端的記憶體位址空間是相同的。 不過,並不一定永遠如此。

例如,下列是傳送端與接收端記憶體位址空間最可能不同的一些情況範例:

解決此問題的一個常用方式是配置資訊。配置表示將事件轉換成原始資料,使用發佈/訂閱等架構傳送它,然後在接收端將原始資料轉換成它的原始形式。CORBA™ 等高層次的解決方案會自動產生必要的程式碼,但若使用低層次的解決方案,您應該明確處理。Rational Rhapsody 可讓您指定如何透過建立處理此作業的「標準作業」,來配置以及不配置事件及實例。

對於低階解決方案,您可以使用下列其中一個局部動畫方法:

為了支援局部動畫,C++ 產生程式碼具有下列性質:

為了支援局部動畫,OXF 具有下列性質:

屬性摘要

deleteAfterConsume - 決定在耗用事件之後,是否將其刪除

destination - 指定 OMReactive 實例

frameworkEvent - 指定事件是否為架構事件

lid - 指定事件 ID 的值

常數摘要

OMEventAnyEventId 是指定任何事件的保留事件 ID。

OMCancelEventId 是指定所取消事件(不應傳送至其目的地的事件)的保留事件 ID。

OMEventNullId 是用於耗用空值轉移的保留事件 ID。

OMEventStartBehaviorId 是用於 OMStartBehavior 事件的保留事件 ID。

OMEventOXFEndEventId 用來在刪除使用架構 DLL 的 COM 伺服器時,完全關閉架構的保留事件 ID。

OMEventTimeoutId is a reserved event ID used for timeouts.

建構摘要
OMEvent
建構 OMEvent 物件
~OMEvent
毀損 OMEvent 物件
方法摘要
Delete
刪除事件實例(釋放事件所使用的記憶體)
getDestination
傳回事件的回應目的地
getlId
傳回事件 ID
isCancelledTimeout
判定事件是否已取消
isDeleteAfterConsume
如果事件在耗用之後由事件分派器 (OMThread) 刪除,則傳回 TRUE
isFrameworkEvent
如果事件是內部架構事件,則傳回 TRUE
isRealEvent
如果事件是空值轉移事件、逾時或使用者事件,則傳回 TRUE
isTimeout
如果事件是逾時,則傳回 TRUE
isTypeOf
如果事件來自給定類型(具有指定 ID),則傳回 TRUE
setDeleteAfterConsume
決定在事件耗用之後,事件分派器 (OMThread) 是否對其進行刪除
setDestination
設定事件回應目的地
setFrameworkEvent
設定要視為內部架構事件的事件
setlId
設定事件 ID

意見回饋