nl::Weave::Profiles::DataManagement_Current::TraitPathStore

摘要

构造函数和析构函数

TraitPathStore()
空构造函数。

公共类型

@153{
  kFlag_Failed = 0x2
}
枚举
Flags typedef
uint8_t

公共属性

mStore
Record *

公共函数

AddItem(const TraitPath & aItem)
向商店添加 TraitPath
AddItem(const TraitPath & aItem, Flags aFlags)
使用一组给定的标志向存储区添加 TraitPath
AddItemDedup(const TraitPath & aItem, const TraitSchemaEngine *const aSchemaEngine)
AreFlagsSet(size_t aIndex, Flags aFlags) const
bool
Clear()
void
清空商店。
Compact()
void
压缩存储区,将所有使用中的项向下移动到数组的开头。
GetFirstValidItem() const
size_t
GetFirstValidItem(TraitDataHandle aTraitDataHandle) const
size_t
GetItemAt(size_t aIndex, TraitPath & aTraitPath)
void
GetNextValidItem(size_t i) const
size_t
GetNextValidItem(size_t i, TraitDataHandle aTraitDataHandle) const
size_t
GetNumItems()
size_t
GetPathStoreSize()
size_t
Includes(const TraitPath & aItem, const TraitSchemaEngine *const aSchemaEngine) const
bool
检查商店中是否有任何 TraitPaths 包含给定的 TraitPath
Init(Record *aRecordArray, size_t aNumItems)
void
初始化 TraitPathStore
InsertItemAfter(size_t aIndex, const TraitPath & aItem, Flags aFlags)
InsertItemAt(size_t aIndex, const TraitPath & aItem, Flags aFlags)
向存储区添加 TraitPath,并将其插入指定索引。
Intersects(const TraitPath & aItem, const TraitSchemaEngine *const aSchemaEngine) const
bool
检查商店中是否有任何 TraitPaths 与给定的 TraitPath 相交。
IsEmpty()
bool
IsFull()
bool
IsItemFailed(size_t aIndex) const
bool
IsItemInUse(size_t aIndex) const
bool
IsItemValid(size_t aIndex) const
bool
IsPresent(const TraitPath & aItem) const
bool
检查给定的 TraitPath 是否已在商店中。
IsTraitPresent(TraitDataHandle aDataHandle) const
bool
RemoveItem(const TraitPath & aItem)
void
RemoveItemAt(size_t aIndex)
void
RemoveTrait(TraitDataHandle aDataHandle)
void
移除所有引用给定 TraitDataHandle 的 TraitPath。
SetFailed(size_t aIndex)
void
SetFailed()
void
将所有 TraitPath 标记为失败。
SetFailedTrait(TraitDataHandle aDataHandle)
void
将引用给定 TraitDataHandle 的所有 TraitPath 标记为失败。

结构体

nl::Weave::Profiles::DataManagement_Current::TraitPathStore::Record

公共类型

@153

 nl::Weave::Profiles::DataManagement_Current::TraitPathStore::@153
属性
kFlag_Failed

该商品已被使用,但不再有效。

标志

uint8_t nl::Weave::Profiles::DataManagement_Current::TraitPathStore::Flags

公共属性

mStore

Record * nl::Weave::Profiles::DataManagement_Current::TraitPathStore::mStore

公共函数

AddItem

WEAVE_ERROR nl::Weave::Profiles::DataManagement_Current::TraitPathStore::AddItem(
  const TraitPath & aItem
)

向商店添加 TraitPath

具体说明
参数
[in] aItem
要存储的 TraitPath
返回值
WEAVE_NO_ERROR
WEAVE_ERROR_WDM_PATH_STORE_FULL
如果商店已满,

AddItem

WEAVE_ERROR nl::Weave::Profiles::DataManagement_Current::TraitPathStore::AddItem(
  const TraitPath & aItem,
  Flags aFlags
)

使用一组给定的标志向存储区添加 TraitPath

具体说明
参数
[in] aItem
要存储的 TraitPath
[in] aFlags
要为要添加的项设置为 true 的标志
返回值
WEAVE_NO_ERROR
WEAVE_ERROR_WDM_PATH_STORE_FULL
如果商店已满,
WEAVE_ERROR_INVALID_ARGUMENT
如果 aFlags 包含预留标志

AddItemDedup

WEAVE_ERROR nl::Weave::Profiles::DataManagement_Current::TraitPathStore::AddItemDedup(
  const TraitPath & aItem,
  const TraitSchemaEngine *const aSchemaEngine
)

AreFlagsSet

bool nl::Weave::Profiles::DataManagement_Current::TraitPathStore::AreFlagsSet(
  size_t aIndex,
  Flags aFlags
) const 

清除

void nl::Weave::Profiles::DataManagement_Current::TraitPathStore::Clear()

清空商店。

紧凑

void nl::Weave::Profiles::DataManagement_Current::TraitPathStore::Compact()

压缩存储区,将所有使用中的项向下移动到数组的开头。

这对于使用 TraitPathStore 实现可修改的列表(例如由 SubscriptionClient 维护的进行中路径列表)非常有用。

GetFirstValidItem

size_t nl::Weave::Profiles::DataManagement_Current::TraitPathStore::GetFirstValidItem() const 

GetFirstValidItem

size_t nl::Weave::Profiles::DataManagement_Current::TraitPathStore::GetFirstValidItem(
  TraitDataHandle aTraitDataHandle
) const 

GetItemAt

void nl::Weave::Profiles::DataManagement_Current::TraitPathStore::GetItemAt(
  size_t aIndex,
  TraitPath & aTraitPath
)

GetNextValidItem

size_t nl::Weave::Profiles::DataManagement_Current::TraitPathStore::GetNextValidItem(
  size_t i
) const 

GetNextValidItem

size_t nl::Weave::Profiles::DataManagement_Current::TraitPathStore::GetNextValidItem(
  size_t i,
  TraitDataHandle aTraitDataHandle
) const 

GetNumItems

size_t nl::Weave::Profiles::DataManagement_Current::TraitPathStore::GetNumItems()

具体说明
返回值
返回商店中 TraitPath 的数量。

GetPathStoreSize

size_t nl::Weave::Profiles::DataManagement_Current::TraitPathStore::GetPathStoreSize()

具体说明
返回值
返回商店的容纳人数。

包含

bool nl::Weave::Profiles::DataManagement_Current::TraitPathStore::Includes(
  const TraitPath & aItem,
  const TraitSchemaEngine *const aSchemaEngine
) const 

检查商店中是否有任何 TraitPaths 包含给定的 TraitPath

如果满足以下任一条件,则 TraitPath A 包含 TraitPath B:

  • 这两个 TraitPath 是相同的;
  • A 是 B 的祖先。

具体说明
参数
[in] aTraitPath
要根据商店检查的 TraitPath
[in] aSchemaEngine
指向 aTraitPath 所引用的特征实例对应的 TraitSchemaEngine 的指针。
返回值
如果 TraitPath 已包含在商店中的路径中,则为 true。

Init

void nl::Weave::Profiles::DataManagement_Current::TraitPathStore::Init(
  Record *aRecordArray,
  size_t aNumItems
)

初始化 TraitPathStore

具体说明
参数
[in] aRecordArray
指向将用于存储路径和标志的记录数组的指针。
[in] aArrayLength
存储数组的长度(以项数表示)。

InsertItemAfter

WEAVE_ERROR nl::Weave::Profiles::DataManagement_Current::TraitPathStore::InsertItemAfter(
  size_t aIndex,
  const TraitPath & aItem,
  Flags aFlags
)

InsertItemAt

WEAVE_ERROR nl::Weave::Profiles::DataManagement_Current::TraitPathStore::InsertItemAt(
  size_t aIndex,
  const TraitPath & aItem,
  Flags aFlags
)

向存储区添加 TraitPath,并将其插入指定索引。

假设商店没有间隙。

具体说明
参数
[in] aIndex
用于插入 TraitPath 的索引;插入操作必须确保存储紧凑。
[in] aFlags
要为要添加的项设置为 true 的标志。
返回值
WEAVE_ERROR_INCORRECT_STATE
WEAVE_ERROR_INVALID_ARGUMENT
在 aIndex 中添加 TraitPath 会使存储区不紧凑。
WEAVE_ERROR_WDM_PATH_STORE_FULL
如果商店已满,
WEAVE_NO_ERROR

相交

bool nl::Weave::Profiles::DataManagement_Current::TraitPathStore::Intersects(
  const TraitPath & aItem,
  const TraitSchemaEngine *const aSchemaEngine
) const 

检查商店中是否有任何 TraitPaths 与给定的 TraitPath 相交。

如果满足以下任一条件,两个 TraitPath 便会彼此相交:

  • 这两个 TraitPath 是相同的;
  • 这两个 TraitPath 中的一个是另一个 TraitPath 的祖先实体。

具体说明
参数
[in] aTraitPath
要根据商店检查的 TraitPath
[in] aSchemaEngine
指向 aTraitPath 所引用的特征实例对应的 TraitSchemaEngine 的指针。
返回值
如果存储区与给定的 TraitPath 相交,则返回 true;否则,返回 false。

IsEmpty

bool nl::Weave::Profiles::DataManagement_Current::TraitPathStore::IsEmpty()

具体说明
返回值
如果存储区为空,则返回 true;否则返回 false。

IsFull

bool nl::Weave::Profiles::DataManagement_Current::TraitPathStore::IsFull()

具体说明
返回值
如果存储区已满,则返回 true;否则返回 false。

IsItemFailed

bool nl::Weave::Profiles::DataManagement_Current::TraitPathStore::IsItemFailed(
  size_t aIndex
) const 

IsItemInUse

bool nl::Weave::Profiles::DataManagement_Current::TraitPathStore::IsItemInUse(
  size_t aIndex
) const 

IsItemValid

bool nl::Weave::Profiles::DataManagement_Current::TraitPathStore::IsItemValid(
  size_t aIndex
) const 

IsPresent

bool nl::Weave::Profiles::DataManagement_Current::TraitPathStore::IsPresent(
  const TraitPath & aItem
) const 

检查给定的 TraitPath 是否已在商店中。

具体说明
参数
[in] aItem
要查找的 TraitPath
返回值
如果商店包含 aItem,则返回 true。

IsTraitPresent

bool nl::Weave::Profiles::DataManagement_Current::TraitPathStore::IsTraitPresent(
  TraitDataHandle aDataHandle
) const 

具体说明
参数
[in] aDataHandle
要查找的 TraitDataHandle。
返回值
如果存储包含一个或多个引用给定 TraitDataHandle 的路径,则返回 true

RemoveItem

void nl::Weave::Profiles::DataManagement_Current::TraitPathStore::RemoveItem(
  const TraitPath & aItem
)

RemoveItemAt

void nl::Weave::Profiles::DataManagement_Current::TraitPathStore::RemoveItemAt(
  size_t aIndex
)

RemoveTrait

void nl::Weave::Profiles::DataManagement_Current::TraitPathStore::RemoveTrait(
  TraitDataHandle aDataHandle
)

移除所有引用给定 TraitDataHandle 的 TraitPath。

具体说明
参数
[in] aDataHandle
TraitDataHandle

SetFailed

void nl::Weave::Profiles::DataManagement_Current::TraitPathStore::SetFailed(
  size_t aIndex
)

SetFailed

void nl::Weave::Profiles::DataManagement_Current::TraitPathStore::SetFailed()

将所有 TraitPath 标记为失败。

SetFailedTrait

void nl::Weave::Profiles::DataManagement_Current::TraitPathStore::SetFailedTrait(
  TraitDataHandle aDataHandle
)

将引用给定 TraitDataHandle 的所有 TraitPath 标记为失败。

具体说明
参数
aDataHandle
要查找的 TraitDataHandle。

TraitPathStore

 nl::Weave::Profiles::DataManagement_Current::TraitPathStore::TraitPathStore()

空构造函数。