本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
迭代已訂閱實體的事件
用於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
事件的情況下,應用程式會在下一個勾選時再次嘗試轉移。