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()