nl::Weave::Profiles::DataManagement_Current::UpdateEncoder

#include <src/lib/profiles/data-management/Current/UpdateEncoder.h>

此对象会对 WDM UpdateRequest 和 PartialUpdateRequest 载荷进行编码。

摘要

请注意,这两个请求的格式相同;它们只是通过消息类型进行区分,这不在该对象的讨论范围内。

编码由 EncodeRequest 方法同步完成。唯一的其他公共方法是 InsertInProgressUpdateItem,当 SchemaEngine 需要将字典推送回队列时,它会调用该方法。

构造函数和析构函数

UpdateEncoder()
~UpdateEncoder()

公共函数

EncodeRequest(Context & aContext)
对 WDM 更新请求载荷进行编码。
InsertInProgressUpdateItem(const TraitPath & aItem)
在处理中的路径列表中添加一个专用路径,将其插入当前编码路径之后。

结构体

nl::Weave::Profiles::DataManagement_Current::UpdateEncoder::Context

此结构包含 EncodeRequest 方法的 I/O 参数。

公共函数

EncodeRequest

WEAVE_ERROR EncodeRequest(
  Context & aContext
)

对 WDM 更新请求载荷进行编码。

请参阅 UpdateEncoder::Context。PacketBuffer 的数据长度仅在成功时更新,但缓冲区内容不会保留。

具体说明
返回值
WEAVE_NO_ERROR
在载荷的 DataList 中,至少有一个 DataElement 已编码。
WEAVE_ERROR_BUFFER_TOO_SMALL
第一个 DataElement 无法放入载荷。
WEAVE_ERROR_INVALID_ARGUMENT
aContext 初始化时使用了无效值。
other
较低级别对象(TLVWriter、SchemaEngine 等)中的其他错误。

InsertInProgressUpdateItem

WEAVE_ERROR InsertInProgressUpdateItem(
  const TraitPath & aItem
)

在处理中的路径列表中添加一个专用路径,将其插入当前编码路径之后。

此方法将在 SchemaEngine 遍历架构树时调用,且需要将字典推送回列表。

具体说明
参数
[in] aItem
要在编码列表中插入的 TraitPath
返回值
WEAVE_NO_ERROR
该项已成功插入。
WEAVE_NO_MEMORY
TraitPathStore 中没有空间来插入此内容。

UpdateEncoder

 UpdateEncoder()

~UpdateEncoder

 ~UpdateEncoder()