nl::Weave::Profiles::DataManagement_Legacy::DMPublisher

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

應用程式專屬 WDM 發布商的抽象基本類別。

摘要

DMPublisher 是標準的 WDM 發布商基礎類別。這個程式庫結合了 DM ProtocolEngine 類別,可處理通訊 Crank 轉彎,以及完全抽象的 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)
回應觀看要求。

公用函式

CancelTransactionRequest

WEAVE_ERROR CancelTransactionRequest(
  uint16_t aTxnId,
  WEAVE_ERROR aError
)

清除

virtual void Clear(
  void
)

清除 DMPublisher 物件的內部狀態。

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

DMPublisher

 DMPublisher(
  void
)

DMPublisher 物件的預設建構函式。

清除所有內部狀態。

完成轉換

virtual void Finalize(
  void
)

關閉運作中的 DMPublisher

清除所有作業狀態,並關閉執行中的事件監聽器。

IncompleteIndication

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 物件。

這個方法會在交換管理員中安裝事件監聽器,以便為所有用戶端要求 (包括用於訂閱的用戶端要求) 產生副作用。

詳細說明
參數
[in] aExchangeMgr
指向 WeaveExchangeManager 物件的指標,用於發布商希望參與所有廣告交易平台。
[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
)

UpdateResponse

WEAVE_ERROR UpdateResponse(
  ExchangeContext *aResponseCtx,
  StatusReport & aStatus
)

回應更新要求。

處理完成後,使用指標中提供的廣告交易平台結構定義,將回應傳送至更新要求。

詳細說明
參數
[in] aResponseCtx
指向接收要求的廣告交易平台結構定義指標。
[in] aStatus
指向 StatusReport 物件的參照,其中包含要求狀態的相關資訊。
傳回
WEAVE_NO_ERROR:成功後。否則,系統會傳回 WEAVE_ERROR,反映無法傳送回應訊息。

ViewResponse

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

回應觀看要求。

處理完成後,使用指標中提供的廣告交易平台結構定義,將回應傳送至檢視要求。

詳細說明
參數
[in] aResponseCtx
指向接收要求的廣告交易平台結構定義指標。
[in] aStatus
指向 StatusReport 物件的參照,其中包含要求狀態的相關資訊。在這種情況下,要求者會預期資料清單包含興趣資料。
[in] aDataList
指向選用的 ReferencedTLVData 物件,其中包含採用 TLV 編碼的資料清單,其中含有所需資料,以及指示該資料處置的路徑。請注意,如果前一個參數中的狀態不成功,此參數應為 NULL。
傳回值
WEAVE_NO_ERROR
成功時。否則,系統會傳回 WEAVE_ERROR,表示無法傳送回應訊息。
WEAVE_ERROR_INVALID_ARGUMENT
如果指定的參數不一致
WEAVE_ERROR_NO_MEMORY
如果無法分配 Inet 緩衝區。

~DMPublisher

virtual  ~DMPublisher(
  void
)

DMPublisher 物件的解構函式。

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