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)
响应视图请求。

公共函数

取消交易请求

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
对状态报告对象的引用,其中详细说明了失败原因。

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
)

已接收

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

UpdateResponse 接口中的方法

WEAVE_ERROR UpdateResponse(
  ExchangeContext *aResponseCtx,
  StatusReport & aStatus
)

响应更新请求。

处理完成后,使用指示给出的交换上下文将响应发送到更新请求。

详细信息
参数
[in] aResponseCtx
指向接收所请求请求的 Exchange 上下文的指针。
[in] aStatus
对 StatusReport 对象的引用,该对象包含有关请求状态的信息。
返回值
WEAVE_NO_ERROR:当成功时。否则,返回表示无法发送响应消息的 WEAVE_ERROR

视图响应

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

响应视图请求。

处理完成后,使用指示中给出的交换上下文将响应发送到视图请求。

详细信息
参数
[in] aResponseCtx
指向接收所请求请求的 Exchange 上下文的指针。
[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 对象的析构函数。

清除所有内部状态,并从广告交易平台管理器中移除监听器(如有)。