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
对详细失败原因的 StatusReport 对象的引用。

Init

virtual WEAVE_ERROR Init(
  WeaveExchangeManager *aExchangeMgr,
  uint32_t aResponseTimeout
)

初始化 DMPublisher 对象。

此方法的副作用是在 Exchange 管理器中为所有客户端请求(可能包括订阅请求)安装监听器。

详细信息
参数
[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 对象的析构函数。

清除所有内部状态,并从 Exchange 管理器中移除监听器(如果有的话)。