nl::Weave::Profiles::DataManagement_Legacy::DMClient

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

特定于应用的 WDM 客户端的抽象基类。

摘要

DMClient 是标准 WDM 客户端。实现可以选择性地包含订阅/通知。它混合使用用于处理通信操纵的 DM ProtocolEngine 类和完全抽象的 ClientDataManager 类,并实现了一些与订阅相关的方法,使较高层不必为这些问题而担心。

订阅相关任务的处理程序主要充当 ClientNotifier 对象的瘦适配器。子类实现者应注意调用相关的超类方法,以便转动订阅管理器。

DMClient 请求方法通常具有 2 个签名,一个具有明确的目标节点 ID,另一个具有指定目标。无论是哪种情况,能否向发布者发送消息都取决于客户端中已存在的绑定,但在第一种情况下,目的地 ID 旨在在多个绑定目的地之间进行选择,而在第二种情况下,则选择绑定表中的第一项作为默认项。这在某些情况下很有用,例如当客户只与一个发布商绑定时。

继承

沿用自:
  nl::Weave::Profiles::DataManagement_Legacy::ProtocolEngine
  nl::Weave::Profiles::DataManagement_Legacy::ClientDataManager

构造函数和析构函数

DMClient(void)
DMClient 对象的默认构造函数。
~DMClient(void)
DMClient 对象的析构函数。
ViewRequest(const uint64_t & aDestinationId, ReferencedTLVData & aPathList, uint16_t aTxnId, uint32_t aTimeout)
virtual WEAVE_ERROR
请求查看已发布数据的视图。
ViewRequest(ReferencedTLVData & aPathList, uint16_t aTxnId, uint32_t aTimeout)
virtual WEAVE_ERROR
请求查看默认发布商的数据视图。
UpdateRequest(const uint64_t & aDestinationId, ReferencedTLVData & aDataList, uint16_t aTxnId, uint32_t aTimeout)
virtual WEAVE_ERROR
请求更新已发布数据。
UpdateRequest(ReferencedTLVData & aDataList, uint16_t aTxnId, uint32_t aTimeout)
virtual WEAVE_ERROR
请求更新默认发布商的数据。

受保护的属性

mUpdatePool[kUpdatePoolSize]
mViewPool[kViewPoolSize]

公共函数

CancelTransactionRequest(uint16_t aTxnId, WEAVE_ERROR aError)
请求取消正在执行的事务。
Clear(void)
virtual void
清除与 DMClient 对象关联的内部状态。
Finalize(void)
virtual void
关闭正在运行的 DMClient
IncompleteIndication(Binding *aBinding, StatusReport & aReport)
virtual void
处理“未完成”客户端使用的绑定的状态

受保护的函数

NewUpdate(void)
Update *
NewView(void)
View *

ViewRequest

virtual WEAVE_ERROR ViewRequest(
  const uint64_t & aDestinationId,
  ReferencedTLVData & aPathList,
  uint16_t aTxnId,
  uint32_t aTimeout
)

请求查看已发布数据的视图。

请求查看指定远程发布者上驻留并由指定的远程发布者管理的数据视图。

详细信息
参数
[in] aDestinationId
对远程发布者的 64 位节点 ID 的引用。
[in] aPathList
ReferencedTLVData 对象的引用,该对象包含指示所请求数据的 TLV 编码路径列表。
[in] aTxnId
为管理此查看操作而设置的 WDM 交易的标识符。
[in] aTimeout
等待视图响应的最长时间(以毫秒为单位)。
返回值
WEAVE_NO_ERROR
成功时。
WEAVE_ERROR_NO_MEMORY
如果无法分配交易。
返回值
否则,将出现 WEAVE_ERROR,反映无法初始化或启动事务。

ViewRequest

virtual WEAVE_ERROR ViewRequest(
  ReferencedTLVData & aPathList,
  uint16_t aTxnId,
  uint32_t aTimeout
)

请求查看默认发布商的数据视图。

请求查看驻留在“默认”中并由其管理的数据视图发布商,即客户端绑定表中的第一个(或唯一)发布商。

详细信息
参数
[in] aPathList
ReferencedTLVData 对象的引用,该对象包含指示所请求数据的 TLV 编码路径列表。
[in] aTxnId
为管理此查看操作而设置的 WDM 交易的标识符。
[in] aTimeout
等待视图响应的最长时间(以毫秒为单位)。
返回值
WEAVE_NO_ERROR
成功时。
WEAVE_ERROR_NO_MEMORY
如果无法分配交易。
返回值
否则,将出现 WEAVE_ERROR,反映无法初始化或启动事务。

UpdateRequest

virtual WEAVE_ERROR UpdateRequest(
  const uint64_t & aDestinationId,
  ReferencedTLVData & aDataList,
  uint16_t aTxnId,
  uint32_t aTimeout
)

请求更新已发布数据。

请求远程发布者更新管理中的数据。

详细信息
参数
[in] aDestinationId
对接收请求的远程发布者的 64 位节点 ID 的引用。
[in] aDataList
ReferencedTLVData 对象的引用,该对象包含经过 TLV 编码的数据列表,该列表包含更新(包括要应用更新的路径)的表示形式。
[in] aTxnId
交易的标识符,设置用于管理更新请求。
[in] aTimeout
等待相应状态报告的最长时间(以毫秒为单位)。
返回值
如果成功,则为 WEAVE_NO_ERROR;如果无法分配更新事务,则为 WEAVE_ERROR_NO_MEMORY。否则,会返回表示更新失败的 WEAVE_ERROR

UpdateRequest

virtual WEAVE_ERROR UpdateRequest(
  ReferencedTLVData & aDataList,
  uint16_t aTxnId,
  uint32_t aTimeout
)

请求更新默认发布商的数据。

请求远程发布者更新管理中的数据。此版本将请求定向到作为客户端默认绑定的目标的发布商。

详细信息
参数
[in] aDataList
ReferencedTLVData 对象的引用,该对象包含经过 TLV 编码的数据列表,该列表包含更新(包括要应用更新的路径)的表示形式。
[in] aTxnId
交易的标识符,设置用于管理更新请求。
[in] aTimeout
等待相应状态报告的最长时间(以毫秒为单位)。
返回值
如果成功,则为 WEAVE_NO_ERROR;如果无法分配更新事务,则为 WEAVE_ERROR_NO_MEMORY。否则,会返回表示更新失败的 WEAVE_ERROR

受保护的属性

mUpdatePool

Update mUpdatePool[kUpdatePoolSize]

mViewPool

View mViewPool[kViewPoolSize]

公共函数

CancelTransactionRequest

WEAVE_ERROR CancelTransactionRequest(
  uint16_t aTxnId,
  WEAVE_ERROR aError
)

请求取消正在执行的事务。

此方法不会生成网络流量,只会释放为指定事务分配的资源

详细信息
参数
[in] aTxnId
要取消的交易的编号。如果提供了 kTransactionIdNotSpecified,则所有交易都将被取消。
[in] aError
取消交易时要报告的 WEAVE_ERROR
返回值
WEAVE_NO_ERROR(如果成功)或 WEAVE_ERROR(表示失败,无法取消交易)。

清除

virtual void Clear(
  void
)

清除与 DMClient 对象关联的内部状态。

特别是,此方法会清除所有客户端事务池。对于已在使用中的客户端,最好使用 Finalize() 方法,因为该方法还会取消订阅并清理事务和绑定表。

另请参阅
Finalize()

DMClient

 DMClient(
  void
)

DMClient 对象的默认构造函数。

清除所有内部状态。DMClient 在使用前需要通过 Init() 进行进一步初始化。

完成

virtual void Finalize(
  void
)

关闭正在运行的 DMClient

清除与客户端关联的所有操作状态,并从通知程序中移除所有相关订阅。调用 Finalize() 后,只需调用 Init() 即可重新初始化 DMClientFinalize()DMClient 析构函数调用,但在 DMClient 需要清理时可能会调用,例如:以防出现故障或暂时关闭,但可能稍后需要重新构建。

IncompleteIndication

virtual void IncompleteIndication(
  Binding *aBinding,
  StatusReport & aReport
)

处理“未完成”客户端使用的绑定的状态

当绑定意外失败时,例如如果绑定涉及的连接已关闭,则调用此方法。

详细信息
参数
[in] aBinding
指向未完成的 Binding 的指针。
[in] aReport
引用状态报告并说明失败原因。

~DMClient

virtual  ~DMClient(
  void
)

DMClient 对象的析构函数。

清除所有内部状态,并在必要时取消待处理的订阅。

受保护的函数

NewUpdate

Update * NewUpdate(
  void
)

NewView

View * NewView(
  void
)