nl::Weave::Profiles::DataManagement_Current::NotificationEngine::NotifyRequestBuilder

#include <src/lib/profiles/data-management/Current/NotificationEngine.h>

這可提供輔助類別,讓您撰寫通知並抽離消費者的訊息結構和結構。

摘要

這是類似 MessageDef.cpp 中類似類別的精簡版本,旨在註意裝置的閃光燈和 RAM 需求。

公開函式

Checkpoint(TLV::TLVWriter & aPoint)
檢查要求狀態至 TLVWriter。
EndDataList()
結束資料清單陣列的建構。
EndEventList()
結束事件清單的建立作業。
EndNotifyRequest()
結束通知建構。
GetWriter(void)
Init(PacketBuffer *aBuf, TLV::TLVWriter *aWriter, SubscriptionHandler *aSubHandler, uint32_t aMaxPayloadSize)
初始化建構工具。
MoveToState(NotifyRequestBuilderState aDesiredState)
主要狀態轉換函式。
Rollback(TLV::TLVWriter & aPoint)
將要求狀態復原至查核點 TLVWriter。
StartDataList(void)
開始建構資料清單陣列。
StartEventList()
開始建立事件清單。
StartNotifyRequest()
開始建構通知。
WriteDataElement(TraitDataHandle aTraitDataHandle, PropertyPathHandle aPropertyPathHandle, SchemaVersion aSchemaVersion, PropertyPathHandle *aMergeDataHandleSet, uint32_t aNumMergeDataHandles, PropertyPathHandle *aDeleteHandleSet, uint32_t aNumDeleteHandles)
指定特徵路徑,寫出與該路徑相關聯的資料元素。

公開函式

Checkpoint

WEAVE_ERROR Checkpoint(
  TLV::TLVWriter & aPoint
)

檢查要求狀態至 TLVWriter。

詳細資料
參數
[out] aPoint
可檢查 TLV 寫入器的狀態。
傳回值
WEAVE_NO_ERROR
成功時。

EndDataList

WEAVE_ERROR EndDataList()

結束資料清單陣列的建構。

詳細資料
傳回值
WEAVE_NO_ERROR
成功時。
WEAVE_ERROR_INCORRECT_STATE
如果該要求不在 DataList 容器中。
other
無法建立資料清單的結尾。

EndEventList

WEAVE_ERROR EndEventList()

結束事件清單的建立作業。

詳細資料
傳回值
WEAVE_NO_ERROR
成功時。
WEAVE_ERROR_INCORRECT_STATE
如果請求不在 EventList 容器中。
other
無法建立資料清單的結尾。

EndNotifyRequest

WEAVE_ERROR EndNotifyRequest()

結束通知建構。

詳細資料
傳回值
WEAVE_NO_ERROR
成功時。
WEAVE_ERROR_INCORRECT_STATE
如果該要求不在 Notify 容器中。
other
無法建立通知結尾。

GetWriter

TLV::TLVWriter * GetWriter(
  void
)

Init

WEAVE_ERROR Init(
  PacketBuffer *aBuf,
  TLV::TLVWriter *aWriter,
  SubscriptionHandler *aSubHandler,
  uint32_t aMaxPayloadSize
)

初始化建構工具。

只能呼叫一次。

詳細資料
傳回值
WEAVE_NO_ERROR
成功時。
other
無法初始化建構工具。

MoveToState

WEAVE_ERROR MoveToState(
  NotifyRequestBuilderState aDesiredState
)

主要狀態轉換函式。

函式使用所需狀態 (亦即通知要求建構工具的階段),並將要求轉換為該狀態。若所需狀態與目前狀態相同,則函式不會執行任何動作。否則會視需要分配 PacketBuffer。函式會先將要求轉換為頂層通知要求 (開啟通知要求 TLV 結構,或視需要關閉目前的 TLV 資料容器),然後開啟適當的 TLV 資料容器,或是關閉主要通知要求,藉此轉換 Notify 要求。

詳細資料
參數
aDesiredState
要求應轉換至的所需狀態
傳回值
WEAVE_NO_ERROR
成功時。
WEAVE_ERROR_NO_MEMORY
記憶體不足,因此無法轉換為狀態。
WEAVE_ERROR_INCORRECT_STATE
內部狀態機器毀損。
other
如果狀態機器無法在緩衝區中記錄狀態,可能表示設計有瑕疵,而非執行階段問題。

復原

WEAVE_ERROR Rollback(
  TLV::TLVWriter & aPoint
)

將要求狀態復原至查核點 TLVWriter。

詳細資料
參數
[in] aPoint
一名作家將狀態擷取至過去的某個時間點
傳回值
WEAVE_NO_ERROR
成功時。

StartDataList

WEAVE_ERROR StartDataList(
  void
)

開始建構資料清單陣列。

詳細資料
傳回值
WEAVE_NO_ERROR
成功時。
WEAVE_ERROR_INCORRECT_STATE
如果該要求不在 Notify 容器中。
other
無法建立資料清單的開頭。

StartEventList

WEAVE_ERROR StartEventList()

開始建立事件清單。

詳細資料
傳回值
WEAVE_NO_ERROR
成功時。
WEAVE_ERROR_INCORRECT_STATE
如果該要求不在 Notify 容器中。
other
無法建立資料清單的開頭。

StartNotifyRequest

WEAVE_ERROR StartNotifyRequest()

開始建構通知。

詳細資料
傳回值
WEAVE_NO_ERROR
成功時。
WEAVE_ERROR_INCORRECT_STATE
如果要求不在緩衝區的頂層。
other
無法建立通知結尾。

WriteDataElement

WEAVE_ERROR WriteDataElement(
  TraitDataHandle aTraitDataHandle,
  PropertyPathHandle aPropertyPathHandle,
  SchemaVersion aSchemaVersion,
  PropertyPathHandle *aMergeDataHandleSet,
  uint32_t aNumMergeDataHandles,
  PropertyPathHandle *aDeleteHandleSet,
  uint32_t aNumDeleteHandles
)

指定特徵路徑,寫出與該路徑相關聯的資料元素。

呼叫端也可以選擇傳入控制代碼集,以便利用父項屬性路徑控點中一組較小的直系子項節點進行合併作業。

詳細資料
傳回值
WEAVE_NO_ERROR
成功時。
other
無法擷取並寫入資料元素。