nl::Weave::Profiles::DataManagement_Legacy::DMClient

#include <src/lib/profiles/data-management/Legacy/DMClient.h>

應用程式專用 WDM 用戶端的抽象基本類別。

摘要

DMClient 是標準 WDM 用戶端。實作項目可選擇包含訂閱/通知。此外,這個類別結合了 DM ProtocolEngine 類別,用來處理通訊指令轉換和整體抽象的 ClientDataManager 類別,並已實作部分訂閱相關方法,因此高層不必擔心這些方法的問題。

訂閱相關工作的處理常式主要是做為 ClientNotifier 物件的精簡轉接器。子類別實作者應謹慎呼叫相關的父類別方法,才能變換訂閱管理員 crank。

DMClient 要求方法通常具有 2 個簽章,一個具有明確目的地節點 ID,另一個具有指定目的地。無論是哪一種情況,您都能根據用戶端現有的繫結,傳送訊息給發布者,但在第一個情況下,目的地 ID 是用來在多個繫結目的地之間選取,而在第二個情況下,系統會選取繫結資料表中的第一個項目做為預設值。舉例來說,如果客戶只繫結至單一發布商,這個方法就很實用。

繼承

沿用自:
  nl::Weave::Profiles::DataManagement_Legacy::ProtocolEngine
  nl::Weave::Profiles::DataManagement_Legacy::ClientDataManager

建構函式和解構函式

DMClient(void)
DMClient 物件的預設建構函式。
~DMClient(void)
DMClient 物件的解構函式。
ViewRequest(const uint64_t & aDestinationId, ReferencedTLVData & aPathList, uint16_t aTxnId, uint32_t aTimeout)
virtual WEAVE_ERROR
要求檢視已發布資料。
ViewRequest(ReferencedTLVData & aPathList, uint16_t aTxnId, uint32_t aTimeout)
virtual WEAVE_ERROR
要求查看預設發布商的資料。
UpdateRequest(const uint64_t & aDestinationId, ReferencedTLVData & aDataList, uint16_t aTxnId, uint32_t aTimeout)
virtual WEAVE_ERROR
要求更新已發布資料。
UpdateRequest(ReferencedTLVData & aDataList, uint16_t aTxnId, uint32_t aTimeout)
virtual WEAVE_ERROR
要求更新預設發布商的資料。

受保護的屬性

mUpdatePool[kUpdatePoolSize]
mViewPool[kViewPoolSize]

公開函式

CancelTransactionRequest(uint16_t aTxnId, WEAVE_ERROR aError)
要求取消執行中的交易。
Clear(void)
virtual void
清除與 DMClient 物件相關聯的內部狀態。
Finalize(void)
virtual void
關閉運作中的 DMClient
IncompleteIndication(Binding *aBinding, StatusReport & aReport)
virtual void
處理「未完成」。

受保護的函式

NewUpdate(void)
Update *
NewView(void)
View *

ViewRequest

virtual WEAVE_ERROR ViewRequest(
  const uint64_t & aDestinationId,
  ReferencedTLVData & aPathList,
  uint16_t aTxnId,
  uint32_t aTimeout
)

要求檢視已發布資料。

要求查看特定遠端發布商所存放及管理的資料。

詳細資料
參數
[in] aDestinationId
對遠端發布者 64 位元節點 ID 的參照。
[in] aPathList
ReferencedTLVData 物件的參照,其中包含以 TLV 編碼的路徑清單來指出所要求的資料。
[in] aTxnId
設定用於管理這項檢視作業的 WDM 交易 ID。
[in] aTimeout
等待檢視回應的時間上限,以毫秒為單位。
傳回值
WEAVE_NO_ERROR
成功時。
WEAVE_ERROR_NO_MEMORY
無法分配交易。
傳回
否則,WEAVE_ERROR 代表無法初始化或啟動交易失敗。

ViewRequest

virtual WEAVE_ERROR ViewRequest(
  ReferencedTLVData & aPathList,
  uint16_t aTxnId,
  uint32_t aTimeout
)

要求查看預設發布商的資料。

要求查看由「預設」所存放及管理的資料發布商,即客戶繫結表格中的第一位 (或唯一) 發布者。

詳細資料
參數
[in] aPathList
ReferencedTLVData 物件的參照,其中包含以 TLV 編碼的路徑清單來指出所要求的資料。
[in] aTxnId
設定用於管理這項檢視作業的 WDM 交易 ID。
[in] aTimeout
等待檢視回應的時間上限,以毫秒為單位。
傳回值
WEAVE_NO_ERROR
成功時。
WEAVE_ERROR_NO_MEMORY
無法分配交易。
傳回
否則,WEAVE_ERROR 代表無法初始化或啟動交易失敗。

UpdateRequest

virtual WEAVE_ERROR UpdateRequest(
  const uint64_t & aDestinationId,
  ReferencedTLVData & aDataList,
  uint16_t aTxnId,
  uint32_t aTimeout
)

要求更新已發布資料。

要求遠端發布商更新受管理的資料。

詳細資料
參數
[in] aDestinationId
對接收請求的遠端發布商 64 位元節點 ID 的參照。
[in] aDataList
這是 ReferencedTLVData 物件的參照,其中包含以 TLV 編碼的資料清單,其中包括要套用更新的路徑。
[in] aTxnId
設定用於管理更新要求的交易 ID。
[in] aTimeout
相應狀態報告等待時間的最長時間 (以毫秒為單位)。
傳回
成功時傳回 WEAVE_NO_ERROR;如果無法分配更新交易,則傳回 WEAVE_ERROR_NO_MEMORY。否則,請傳回代表更新失敗的 WEAVE_ERROR

UpdateRequest

virtual WEAVE_ERROR UpdateRequest(
  ReferencedTLVData & aDataList,
  uint16_t aTxnId,
  uint32_t aTimeout
)

要求更新預設發布商的資料。

要求遠端發布商更新受管理的資料。這個版本會將要求導向至客戶預設繫結目標的發布商。

詳細資料
參數
[in] aDataList
這是 ReferencedTLVData 物件的參照,其中包含以 TLV 編碼的資料清單,其中包括要套用更新的路徑。
[in] aTxnId
設定用於管理更新要求的交易 ID。
[in] aTimeout
相應狀態報告等待時間的最長時間 (以毫秒為單位)。
傳回
成功時傳回 WEAVE_NO_ERROR;如果無法分配更新交易,則傳回 WEAVE_ERROR_NO_MEMORY。否則,請傳回代表更新失敗的 WEAVE_ERROR

受保護的屬性

mUpdatePool

Update mUpdatePool[kUpdatePoolSize]

mViewPool

View mViewPool[kViewPoolSize]

公開函式

CancelTransactionRequest

WEAVE_ERROR CancelTransactionRequest(
  uint16_t aTxnId,
  WEAVE_ERROR aError
)

要求取消執行中的交易。

這個方法不會產生網路流量,只會釋出分配給指定交易的資源

詳細資料
參數
[in] aTxnId
要取消的交易數量。如果提供 kTransactionIdNotSpecified,所有交易都將取消。
[in] aError
取消交易時要回報的 WEAVE_ERROR
傳回
成功時收到 WEAVE_NO_ERROR,或 WEAVE_ERROR 表示取消交易失敗。

清除

virtual void Clear(
  void
)

清除與 DMClient 物件相關聯的內部狀態。

具體來說,這個方法會清除所有用戶端交易集區。對於已使用 Finalize() 方法的用戶端,它也會取消訂閱項目,並清除交易和繫結資料表。

另請參閱:
Finalize()

DMClient

 DMClient(
  void
)

DMClient 物件的預設建構函式。

清除所有內部狀態。您必須先使用 Init() 進一步初始化 DMClient

完成

virtual void Finalize(
  void
)

關閉運作中的 DMClient

清除與用戶端相關聯的所有運作狀態,並從通知器中移除所有相關訂閱。呼叫 Finalize() 後,只需呼叫 Init() 即可再次初始化 DMClientFinalize() 是由 DMClient 解構函式叫用,但如果 DMClient 需要清理,就可能呼叫此函式,例如:萬一發生故障或暫時關閉,但可能稍後需要重新更改。

IncompleteIndication

virtual void IncompleteIndication(
  Binding *aBinding,
  StatusReport & aReport
)

處理「未完成」。

繫結意外失敗時,例如:如果與繫結相關的連線關閉,系統就會呼叫此方法。

詳細資料
參數
[in] aBinding
指向不完整繫結的指標。
[in] aReport
狀態報告的參照,說明失敗的原因。

~DMClient

virtual  ~DMClient(
  void
)

DMClient 物件的解構函式。

清除所有內部狀態,並視需要取消待處理的訂閱項目。

受保護的函式

NewUpdate

Update * NewUpdate(
  void
)

NewView

View * NewView(
  void
)