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() 即可重新初始化 DMClientDMClient 析构函数会调用 Finalize(),但是在 DMClient 需要清理时(例如,出现故障或临时关闭),但可能需要稍后重新重构时可以调用 Finalize()。

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
)