遍历所订阅实体的事件 - 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 事件,应用程序将在下一个刻度再次尝试转移。