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

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

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

摘要

DMPublisher 是標準的 WDM 發布商基礎類別,這是 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)
回應檢視要求。

公開函式

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
StateReport 物件的參照,其中詳細列出失敗原因。

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
StateReport 物件的參照,其中包含要求狀態的資訊。
傳回
WEAVE_NO_ERROR 即成功。否則,系統會傳回 WEAVE_ERROR 以反映無法傳送回覆訊息。

ViewResponse

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

回應檢視要求。

處理後,使用指示中所提供的交換環境,將回應傳送至檢視要求。

詳細資料
參數
[in] aResponseCtx
接收要求的交換結構定義指標。
[in] aStatus
StateReport 物件的參照,其中包含要求狀態的資訊。如果成功的話,要求者就會預期一份包含所需資料的資料清單。
[in] aDataList
選用 ReferencedTLVData 物件的指標,該物件包含採用 TLV 編碼的資料清單,內含所需資料,以及指出這些資料處理方式的路徑。請注意,如果先前參數中的狀態無法成功,則這個參數應為空值。
傳回值
WEAVE_NO_ERROR
成功時。否則,請傳回 WEAVE_ERROR 表示無法傳送回覆訊息。
WEAVE_ERROR_INVALID_ARGUMENT
如果指定的參數不一致
WEAVE_ERROR_NO_MEMORY
無法分配 Inet 緩衝區。

~DMPublisher

virtual  ~DMPublisher(
  void
)

DMPublisher 物件的解構函式。

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