迭代已訂閱實體的事件 - AWS SimSpace Weaver

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

迭代已訂閱實體的事件

用於AllSubscriptionEvents()取得已訂閱實體 (應用程式訂閱區域中的實體) 的事件清單。該函數具有以下簽名:

Result<SubscriptionChangeList> AllSubscriptionEvents(Transaction& txn)

然後使用迴圈重複執行實體,如下列範例所示。

範例
WEAVERRUNTIME_TRY(Api::SubscriptionChangeList subscriptionChangeList, Api::AllSubscriptionEvents(transaction)); for (const Api::SubscriptionEvent& event : subscriptionChangeList.changes) { Api::Entity entity = event.entity; Api::ChangeListAction action = event.action; switch (action) { case Api::ChangeListAction::None: // insert code to handle the event break; case Api::ChangeListAction::Remove: // insert code to handle the event break; case Api::ChangeListAction::Add: // insert code to handle the event break; case Api::ChangeListAction::Update: // insert code to handle the event break; case Api::ChangeListAction::Reject: // insert code to handle the event break; } }
事件類型
  • None— 實體位於區域中,且未修改其位置和欄位資料。

  • Remove— 圖元已從區域中移除。

  • Add— 圖元已新增至區域。

  • Update— 圖元位於區域中且已修改。

  • Reject— 應用程式無法從區域移除實體。

注意

在發生Reject事件的情況下,應用程式會在下一個勾選時再次嘗試轉移。