nl::編織::設定檔::DataManagement_Legacy::DMPublisher

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

應用程式特定 WDM 發布商的抽象基礎類別。

總結

DMPublisher 是標準的 WDM 發布商基礎類別。其中包含了 DM ProtocolEngine 類別,該類別是處理通訊回應轉彎的 DM ProtocolEngine 類別,還有一個抽象的 PublisherDataManager 類別。您不一定要提供訂閱和通知的支援服務,而且只要設定沒有任何項目的訂閱資料表,就能暫停訂閱和通知。

繼承

沿用來源:
nl::Weave::Profiles::DataManagement_Legacy:: ProtocolEngine
nl::Weave::Profiles::DataManagement_Legacy::PublisherDataManager

建構函式和解構程式

DMPublisher(void)
DMPublisher 物件的預設建構函式。
~DMPublisher(void)
DMPublisher 物件的解構器。

公開函式

CancelTransactionRequest(uint16_t aTxnId, WEAVE_ERROR aError)
Clear(void)
virtual void
清除 DMPublisher 物件的內部狀態。
Finalize(void)
virtual void
關閉 DMPublisher
IncompleteIndication(Binding *aBinding, StatusReport & aReport)
virtual void
處理繫結失敗的提示。
Init(WeaveExchangeManager *aExchangeMgr, uint32_t aResponseTimeout)
virtual WEAVE_ERROR
初始化 DMPublisher 物件。
Init(WeaveExchangeManager *aExchangeMgr)
virtual WEAVE_ERROR
OnMsgReceived(ExchangeContext *aResponseCtx, uint32_t aProfileId, uint8_t aMsgType, PacketBuffer *aMsg)
void
UpdateResponse(ExchangeContext *aResponseCtx, StatusReport & aStatus)
回覆更新要求。
ViewResponse(ExchangeContext *aResponseCtx, StatusReport & aStatus, ReferencedTLVData *aDataList)
回應檢視要求。

公開函式

取消交易要求

WEAVE_ERROR CancelTransactionRequest(
  uint16_t aTxnId,
  WEAVE_ERROR aError
)

清除

virtual void Clear(
  void
)

清除 DMPublisher 物件的內部狀態。

清除通知交易集區和訂閱資料表。

DM 發布商

 DMPublisher(
  void
)

DMPublisher 物件的預設建構函式。

清除所有內部狀態。

完成轉換

virtual void Finalize(
  void
)

關閉 DMPublisher

清除所有操作狀態,如果正在執行,將關閉事件監聽器。

未完成指示

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

處理繫結失敗的提示。

當繫結處於未完成狀態時 (也就是在 TCP 繫結的連線關閉時,通訊協定引擎必須失敗所有需要該交易的交易,包括呼叫其狀態處理常式)。此外,系統會將完整指示傳送至任何實作類別的替代類別物件,並採用對等 ID。

詳細資料
參數
[in] aBinding
失敗繫結的資料點。
[in] aReport
提供 StatusReport 物件的參考資料,詳細說明失敗原因。

Init

virtual WEAVE_ERROR Init(
  WeaveExchangeManager *aExchangeMgr,
  uint32_t aResponseTimeout
)

初始化 DMPublisher 物件。

此方法對於在 Exchange 管理員中安裝一個監聽器,以處理所有用戶端要求 (包括訂閱要求) 的副作用。

詳細資料
參數
[in] aExchangeMgr
這個 WaveExchangeManager 物件,指向發布商想要參與的所有廣告交易平台。
[in] aResponseTimeout
回應逾時時間 (以毫秒為單位,也就是等待回應的最長時間)。
傳回
WEAVE_NO_ERROR 成功。否則,請傳回一個 WEAVE_ERROR,代表未正確設定發布商。

Init

virtual WEAVE_ERROR Init(
  WeaveExchangeManager *aExchangeMgr
)

OnMsgReceived

void OnMsgReceived(
  ExchangeContext *aResponseCtx,
  uint32_t aProfileId,
  uint8_t aMsgType,
  PacketBuffer *aMsg
)

更新回應

WEAVE_ERROR UpdateResponse(
  ExchangeContext *aResponseCtx,
  StatusReport & aStatus
)

回覆更新要求。

處理後,使用指示中所指定的廣告交易平台內容,將回應傳送至更新要求。

詳細資料
參數
[in] aResponseCtx
指向收到請求的廣告交易平台內容中的指標。
[in] aStatus
StatusReport 物件的參考資料,其中包含要求狀態的相關資訊。
傳回
WEAVE_NO_ERROR 成功。否則會傳回 WEAVE_ERROR,代表未能傳送回應訊息。

檢視回應

WEAVE_ERROR ViewResponse(
  ExchangeContext *aResponseCtx,
  StatusReport & aStatus,
  ReferencedTLVData *aDataList
)

回應檢視要求。

處理後,使用指示中所指定的廣告交易平台內容,將回應傳送至檢視請求。

詳細資料
參數
[in] aResponseCtx
指向收到請求的廣告交易平台內容中的指標。
[in] aStatus
StatusReport 物件的參考資料,其中包含要求狀態的相關資訊。如果要求成功,要求者就會預期資料清單含有所需的資料。
[in] aDataList
指向ReferencedTLVData請注意,如果前一個參數中指定的狀態不成功,此參數應為 NULL。
傳回值
WEAVE_NO_ERROR
成功。否則,請傳回 WEAVE_ERROR,以反映無法傳送回應訊息。
WEAVE_ERROR_INVALID_ARGUMENT
如果指定的參數不一致
WEAVE_ERROR_NO_MEMORY
無法分配 Inet 緩衝區。

~DMPublisher (出版商)

virtual  ~DMPublisher(
  void
)

DMPublisher 物件的解構器。

清除所有內部狀態,並將接聽程式從廣告交易平台管理員中移除 (如果有的話)。