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 管理器中移除监听器(如果有)。