nl::Weave::Profiles::DataManagement_Legacy::ProfileDatabase

这是一个抽象类。

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

抽象 ProfileDatabase 辅助类。

摘要

WDM 将协议实现与数据管理实现分离开来,并且至少原则上将大部分协议实现留给应用程序开发者。WDM 中所有值得关注的调用以及配置文件开发者需要实现的所有抽象方法均采用 TLV 编码路径列表或数据列表。这给配置文件开发者带来了负担,并且,在实践中,由于开发者编写用于打包和解压 TLV 等的相同代码,因此会导致大量代码重复。为了方便起见,我们提供了一个“数据管理工具包”。

此辅助类提供了对存储和检索数据的支持,前提是已提供必要的具体 ProfileData 子类并将其添加到下面的 LookupProfileData() 方法中。

公共函数

LookupDataFromProfileDescriptor(nl::Weave::TLV::TLVReader & aDescReader, ProfileData **aProfileData)
在数据库中查找 ProfileData 对象。
LookupProfileData(nl::Weave::TLV::TLVReader & aPathReader, ProfileData **aProfileData)
在数据库中查找 ProfileData 对象。
LookupProfileData(uint32_t aProfileId, nl::Weave::TLV::TLVReader *aInstanceIdRdr, ProfileData **aResult)=0
virtual WEAVE_ERROR
查找 ProfileData 对象。
Retrieve(ReferencedTLVData & aPathList, ReferencedTLVData & aDataList)
根据给定路径列表检索数据列表。
Retrieve(ReferencedTLVData & aPathList, nl::Weave::TLV::TLVWriter & aWriter)
根据给定路径列表写出数据列表。
Store(ReferencedTLVData & aDataList)
存储数据列表。

受保护的函数

StoreInternal(nl::Weave::TLV::TLVReader & aPathReader, uint64_t aVersion, nl::Weave::TLV::TLVReader & aDataReader)

nl::Weave::Profiles::DataManagement_Legacy::ProfileDatabase::ProfileData

抽象 ProfileData 辅助内部类。

公共函数

LookupDataFromProfileDescriptor

WEAVE_ERROR LookupDataFromProfileDescriptor(
  nl::Weave::TLV::TLVReader & aDescReader,
  ProfileData **aProfileData
)

在数据库中查找 ProfileData 对象。

此实用程序方法用于在特定的 ProfileDatabase 中查找 ProfileData 对象。它在很大程度上取决于具体 ProfileDatabase 子类的实现者提供的查找方法。

详细信息
参数
[in] aDescReader
对位于 WDM 路径上的 TLV 读取器的引用,即第一个元素为配置文件说明的 TLV 路径。
[out] aProfileData
一个指针,旨在返回指向相关 ProfileData 对象的指针。
返回值
如果成功,则返回 WEAVE_NO_ERROR;否则,返回 WEAVE_ERROR,表示无法查找匹配的 ProfileData 对象。

LookupProfileData

WEAVE_ERROR LookupProfileData(
  nl::Weave::TLV::TLVReader & aPathReader,
  ProfileData **aProfileData
)

在数据库中查找 ProfileData 对象。

此实用程序方法用于在特定的 ProfileDatabase 中查找 ProfileData 对象。它在很大程度上取决于具体 ProfileDatabase 子类的实现者提供的查找方法。

详细信息
参数
[in] aPathReader
对位于 WDM 路径上的 TLV 读取器的引用,即具有配置文件说明的 TLV 路径。
[out] aProfileData
一个指针,旨在返回指向相关 ProfileData 对象的指针。
返回值
如果成功,则返回 WEAVE_NO_ERROR;否则,返回 WEAVE_ERROR,表示无法查找匹配的 ProfileData 对象。

LookupProfileData

virtual WEAVE_ERROR LookupProfileData(
  uint32_t aProfileId,
  nl::Weave::TLV::TLVReader *aInstanceIdRdr,
  ProfileData **aResult
)=0

查找 ProfileData 对象。

根据配置文件 ID 和(可选)实例 ID 查找特定的 ProfileData 对象以 TLV 读取器的形式提供。

详细信息
参数
[in] aProfileId
相关配置文件的 32 位配置文件编号。
[in] aInstanceIdRdr
指向位于实例标识符数据的 TLV 读取器的指针。如果未提供实例标识符,则此字段应为 NULL。
[out] aResult
一个指针,旨在返回指向相关 ProfileData 对象的指针。
返回值
WEAVE_NO_ERROR,表示成功时。否则,会返回 WEAVE_ERROR,表示无法找到 ProfileData 对象。

检索

WEAVE_ERROR Retrieve(
  ReferencedTLVData & aPathList,
  ReferencedTLVData & aDataList
)

在给定路径列表的情况下检索数据列表。

给定路径列表,检索一个数据列表,其中包含路径列表中每个路径(作为该路径终端的数据)的数据列表元素。

详细信息
参数
[in] aPathList
ReferencedTLVData 对象的引用,该对象包含经过 TLV 编码的路径列表,表示要检索的数据。该参数在此函数的整个执行过程中保持不变。
[out] aDataList
ReferencedTLVData 对象的引用,其中写入检索到的结果。只有在成功执行此函数后,才会调整数据长度。
返回值
WEAVE_NO_ERROR,表示成功时。否则,会返回 WEAVE_ERROR,表示检索相关数据列表失败。

检索

WEAVE_ERROR Retrieve(
  ReferencedTLVData & aPathList,
  nl::Weave::TLV::TLVWriter & aWriter
)

根据给定路径列表写出数据列表。

给定路径列表和 TLV 写入器,写出一个数据列表,其中包含路径列表中每个路径的数据列表元素以及作为该路径终端的数据。

详细信息
参数
[in] aPathList
ReferencedTLVData 对象的引用,该对象包含表示要检索的数据的 TLV 路径列表。该参数在此函数的整个执行过程中保持不变。
[in] aWriter
TLV 写入器的引用,用于写出检索到的路径列表。如果发生错误,写入器的内部状态可能无法恢复。
返回值
WEAVE_NO_ERROR,表示成功时。否则,会返回 WEAVE_ERROR,表示检索数据失败或无法写出感兴趣的数据列表。

商店

WEAVE_ERROR Store(
  ReferencedTLVData & aDataList
)

存储数据列表。

对于经过 TLV 编码的数据列表,此方法会解析该列表并调用 ProfileDatabase 子类实现人员提供的具体方法,以将引用的数据放到相应位置。

详细信息
参数
[in] aDataList
ReferencedTLVData 对象的引用,该对象包含相关数据(采用 TLV 编码的形式)。
返回值
WEAVE_NO_ERROR,表示成功时。否则,会返回 WEAVE_ERROR,表示未能存储相关数据。

受保护的函数

StoreInternal

WEAVE_ERROR StoreInternal(
  nl::Weave::TLV::TLVReader & aPathReader,
  uint64_t aVersion,
  nl::Weave::TLV::TLVReader & aDataReader
)