nl :: Плетение :: Профили: DataManagement_Current :: TraitSchemaEngine
#include <src/lib/profiles/data-management/Current/TraitData.h>
Механизм схемы принимает информацию схемы, связанную с конкретным признаком, и предоставляет средства для анализа и преобразования ее в форму, используемую механизмом WDM.
Резюме
Это включает преобразование из PathHandles в пути WDM (и наоборот), методы для интерпретации / запроса самой схемы и методы, помогающие читать / записывать данные в / из TLV с учетом дескриптора.
Сама схема хранится в табличной форме, достаточно описанной, чтобы обеспечить общий анализ / составление путей / данных WDM для любого заданного признака. Эти таблицы - то, что будет в конечном итоге результатом 'code-gen' (сам термин несколько вводит в заблуждение, учитывая отсутствие какого-либо сгенерированного кода: P)
Публичные статические атрибуты | |
---|---|
kHandleTableOffset = 2 | const uint32_t |
Публичные атрибуты | |
---|---|
mSchema | const Schema |
Публичные функции | |
---|---|
FindLowestCommonAncestor ( PropertyPathHandle aHandle1, PropertyPathHandle aHandle2, PropertyPathHandle *aHandle1BranchChild, PropertyPathHandle *aHandle2BranchChild) const | Учитывая два дескриптора свойств, вычислите самый нижний дескриптор, который служит родительским для обоих этих дескрипторов. |
GetChildHandle ( PropertyPathHandle aParentHandle, uint8_t aContextTag) const | |
GetDepth ( PropertyPathHandle aHandle) const | int32_t Вычислите глубину в дереве схемы для данного дескриптора. |
GetDictionaryItemHandle ( PropertyPathHandle aParentHandle, uint16_t aDictionaryKey) const | |
GetFirstChild ( PropertyPathHandle aParentHandle) const | Возвращает первый дочерний дескриптор, связанный с конкретным родителем. |
GetHighestForwardVersion (SchemaVersion aVersion) const | SchemaVersion Данная версия схемы данных вернет наивысшую версию схемы прямой совместимости. |
GetLowestCompatibleVersion (SchemaVersion aVersion) const | SchemaVersion Для предоставленной версии схемы данных будет возвращена минимальная совместимая версия схемы. |
GetMap ( PropertyPathHandle aHandle) const | const PropertyInfo * Возвращает указатель на структуру PropertyInfo, описывающую конкретный дескриптор пути. |
GetMaxVersion () const | SchemaVersion |
GetMinVersion () const | SchemaVersion |
GetNextChild ( PropertyPathHandle aParentId, PropertyPathHandle aChildHandle) const | Учитывая дескриптор существующего дочернего элемента, возвращает следующий дочерний дескриптор, связанный с конкретным родителем. |
GetParent ( PropertyPathHandle aHandle) const | Возвращает родительский дескриптор заданного дочернего дескриптора пути. |
GetProfileId (void) const | uint32_t Возвращает идентификатор профиля связанного признака. |
GetRelativePathTags (const PropertyPathHandle aCandidateHandle, uint64_t *aTags, const uint32_t aTagsSize, uint32_t & aNumTags) const | Преобразует PropertyPathHandle в массив тегов контекста. |
GetTag ( PropertyPathHandle aHandle) const | uint64_t Возвращает тег, связанный с дескриптором пути. |
GetVersionIntersection ( SchemaVersionRange & aVersion, SchemaVersionRange & aIntersection) const | bool Учитывая диапазон версий, эта функция проверяет, существует ли пересечение совместимости между этим и тем, что поддерживается схемой, поддерживающей этот механизм схемы. |
IsDictionary ( PropertyPathHandle aHandle) const | bool Возвращает истину, если дескриптор является словарем (а не словарем - см. Метод ниже). |
IsEphemeral ( PropertyPathHandle aHandle) const | bool |
IsInDictionary ( PropertyPathHandle aHandle, PropertyPathHandle & aDictionaryItemHandle) const | bool Возвращает истину, если дескриптор находится внутри словаря (элемент словаря). |
IsLeaf ( PropertyPathHandle aPropertyHandle) const | bool Возвращает истину, если дескриптор ссылается на листовой узел в дереве схемы. |
IsNullable ( PropertyPathHandle aHandle) const | bool |
IsOptional ( PropertyPathHandle aHandle) const | bool |
IsParent ( PropertyPathHandle aChildHandle, PropertyPathHandle aParentHandle) const | bool Проверяет, является ли данный дескриптор дочерним по отношению к другому дескриптору. |
MapHandleToPath ( PropertyPathHandle aHandle,nl::Weave::TLV::TLVWriter & aPathWriter) const | Преобразуйте дескриптор пути в путь TLV . |
MapPathToHandle (nl::Weave::TLV::TLVReader & aPathReader, PropertyPathHandle & aHandle) const | Учитывая, что считыватель находится в корне элемента пути WDM, считайте соответствующие теги и предоставьте эквивалентный дескриптор пути. |
MapPathToHandle (const char *aPathString, PropertyPathHandle & aHandle) const | Учитывая строковое представление пути WDM, считайте соответствующие теги и предоставьте эквивалентный дескриптор пути. |
MatchesProfileId (uint32_t aProfileId) const | bool Возвращает true, если переданный profileId совпадает с сохраненным в схеме. |
RetrieveData ( PropertyPathHandle aHandle, uint64_t aTagToWrite,nl::Weave::TLV::TLVWriter & aWriter, IGetDataDelegate *aDelegate, IDirtyPathCut *apDirtyPathCut) const | Получив указатель пути и позицию записи в соответствующем элементе данных, извлеките конечные данные из источника и запишите их в буфер, на который указывает писатель, в соответствии со схемой. |
RetrieveUpdatableDictionaryData ( PropertyPathHandle aHandle, uint64_t aTagToWrite,nl::Weave::TLV::TLVWriter & aWriter, IGetDataDelegate *aDelegate, PropertyPathHandle & aPropertyPathHandleOfDictItemToStartFrom) const | |
StoreData ( PropertyPathHandle aHandle,nl::Weave::TLV::TLVReader & aReader, ISetDataDelegate *aDelegate, IPathFilter *aPathFilter) const | Учитывая указатель пути и считыватель, расположенный на соответствующем элементе данных, обработайте буфер данных, на который указывает считыватель, и сохраните его в приемнике, вызывая вызов SetLeafData всякий раз, когда встречается элемент данных листа. |
Классы | |
---|---|
nl :: Weave :: Profiles :: DataManagement_Current :: TraitSchemaEngine :: IGetDataDelegate | |
nl :: Weave :: Profiles :: DataManagement_Current :: TraitSchemaEngine :: ISetDataDelegate |
Структуры | |
---|---|
nl :: Weave :: Profiles :: DataManagement_Current :: TraitSchemaEngine :: PropertyInfo | |
nl :: Weave :: Profiles :: DataManagement_Current :: TraitSchemaEngine :: Schema | Основная структура схемы, в которой хранится информация о схеме. |
Публичные статические атрибуты
kHandleTableOffset
const uint32_t kHandleTableOffset = 2
Публичные атрибуты
mSchema
const Schema mSchema
Публичные функции
FindLowestCommonAncestor
PropertyPathHandle FindLowestCommonAncestor( PropertyPathHandle aHandle1, PropertyPathHandle aHandle2, PropertyPathHandle *aHandle1BranchChild, PropertyPathHandle *aHandle2BranchChild ) const
Учитывая два дескриптора свойств, вычислите самый нижний дескриптор, который служит родительским для обоих этих дескрипторов.
Кроме того, верните две дочерние ветви, содержащие каждый из двух дескрипторов (даже если они одинаковы).
Подробности | |||
---|---|---|---|
Возвращаемые значения |
|
GetChildHandle
PropertyPathHandle GetChildHandle( PropertyPathHandle aParentHandle, uint8_t aContextTag ) const
GetDepth
int32_t GetDepth( PropertyPathHandle aHandle ) const
Вычислите глубину в дереве схемы для данного дескриптора.
Подробности | |||
---|---|---|---|
Возвращаемые значения |
|
GetDictionaryItemHandle
PropertyPathHandle GetDictionaryItemHandle( PropertyPathHandle aParentHandle, uint16_t aDictionaryKey ) const
GetFirstChild
PropertyPathHandle GetFirstChild( PropertyPathHandle aParentHandle ) const
Возвращает первый дочерний дескриптор, связанный с конкретным родителем.
Подробности | |||
---|---|---|---|
Возвращаемые значения |
|
GetHighestForwardVersion
SchemaVersion GetHighestForwardVersion( SchemaVersion aVersion ) const
Данная версия схемы данных вернет наивысшую версию схемы прямой совместимости.
GetLowestCompatibleVersion
SchemaVersion GetLowestCompatibleVersion( SchemaVersion aVersion ) const
Для предоставленной версии схемы данных будет возвращена минимальная совместимая версия схемы.
GetMap
const PropertyInfo * GetMap( PropertyPathHandle aHandle ) const
Возвращает указатель на структуру PropertyInfo, описывающую конкретный дескриптор пути.
Подробности | |||
---|---|---|---|
Возвращаемые значения |
|
GetMaxVersion
SchemaVersion GetMaxVersion() const
GetMinVersion
SchemaVersion GetMinVersion() const
GetNextChild
PropertyPathHandle GetNextChild( PropertyPathHandle aParentId, PropertyPathHandle aChildHandle ) const
Учитывая дескриптор существующего дочернего элемента, возвращает следующий дочерний дескриптор, связанный с конкретным родителем.
Подробности | |||
---|---|---|---|
Возвращаемые значения |
|
GetParent
PropertyPathHandle GetParent( PropertyPathHandle aHandle ) const
Возвращает родительский дескриптор заданного дочернего дескриптора пути.
Ключи словаря в дескрипторе сохраняются в случае, если родительский дескриптор также является элементом словаря.
Подробности | |||
---|---|---|---|
Возвращаемые значения |
|
GetProfileId
uint32_t GetProfileId( void ) const
Возвращает идентификатор профиля связанного признака.
Подробности | |||
---|---|---|---|
Возвращаемые значения |
|
GetRelativePathTags
WEAVE_ERROR GetRelativePathTags( const PropertyPathHandle aCandidateHandle, uint64_t *aTags, const uint32_t aTagsSize, uint32_t & aNumTags ) const
Преобразует PropertyPathHandle в массив тегов контекста.
Подробности | |||||||||
---|---|---|---|---|---|---|---|---|---|
Параметры |
| ||||||||
Возврат | WEAVE_NO_ERROR в случае успеха; WEAVE_ERROR_NO_MEMORY, если теги слишком малы для хранения полного пути. |
GetTag
uint64_t GetTag( PropertyPathHandle aHandle ) const
Возвращает тег, связанный с дескриптором пути.
Если это элемент словаря, эта функция возвращает ProfileTag. В противном случае он возвращает теги контекста.
Подробности | |||
---|---|---|---|
Возвращаемые значения |
|
GetVersionIntersection
bool GetVersionIntersection( SchemaVersionRange & aVersion, SchemaVersionRange & aIntersection ) const
Учитывая диапазон версий, эта функция проверяет, существует ли пересечение совместимости между этим и тем, что поддерживается схемой, поддерживающей этот механизм схемы.
Если есть пересечение, функция вернет true и обновит переданный аргумент aIntersection, чтобы отразить эти результаты этого теста пересечения.
IsDictionary
bool IsDictionary( PropertyPathHandle aHandle ) const
Возвращает истину, если дескриптор является словарем (а не словарем - см. Метод ниже).
Подробности | |||
---|---|---|---|
Возвращаемые значения |
|
IsEphemeral
bool IsEphemeral( PropertyPathHandle aHandle ) const
IsInDictionary
bool IsInDictionary( PropertyPathHandle aHandle, PropertyPathHandle & aDictionaryItemHandle ) const
Возвращает истину, если дескриптор находится внутри словаря (элемент словаря).
Пользователь, переданный в дескриптор (aDictionaryItemHandle), обновляется, чтобы указать на самый верхний дескриптор элемента словаря в словаре.
Подробности | |||
---|---|---|---|
Возвращаемые значения |
|
IsLeaf
bool IsLeaf( PropertyPathHandle aPropertyHandle ) const
Возвращает истину, если дескриптор ссылается на листовой узел в дереве схемы.
Подробности | |||
---|---|---|---|
Возвращаемые значения |
|
IsNullable
bool IsNullable( PropertyPathHandle aHandle ) const
IsOptional
bool IsOptional( PropertyPathHandle aHandle ) const
IsParent
bool IsParent( PropertyPathHandle aChildHandle, PropertyPathHandle aParentHandle ) const
Проверяет, является ли данный дескриптор дочерним по отношению к другому дескриптору.
Это может быть непосредственный родитель.
Подробности | |||
---|---|---|---|
Возвращаемые значения |
|
MapHandleToPath
WEAVE_ERROR MapHandleToPath( PropertyPathHandle aHandle, nl::Weave::TLV::TLVWriter & aPathWriter ) const
MapPathToHandle
WEAVE_ERROR MapPathToHandle( nl::Weave::TLV::TLVReader & aPathReader, PropertyPathHandle & aHandle ) const
Учитывая, что считыватель находится в корне элемента пути WDM, считайте соответствующие теги и предоставьте эквивалентный дескриптор пути.
Подробности | |||||
---|---|---|---|---|---|
Возвращаемые значения |
|
MapPathToHandle
WEAVE_ERROR MapPathToHandle( const char *aPathString, PropertyPathHandle & aHandle ) const
Учитывая строковое представление пути WDM, считайте соответствующие теги и предоставьте эквивалентный дескриптор пути.
Путь WDM представлен в виде строки с использованием следующих правил:
- теги разделяются символом
/
- путь ДОЛЖЕН начинаться с ведущей
/
и НЕ ДОЛЖЕН содержать косую черту в конце - числовые теги в пути WDM ДОЛЖНЫ быть закодированы с использованием стандартной библиотеки C для кодирования целого числа в строку, т.е. десятичное кодирование (по умолчанию) НЕ ДОЛЖНО содержать начальный 0, шестнадцатеричное кодирование ДОЛЖНО начинаться с
0x
, а восьмеричное кодирование ДОЛЖНО содержать начальный0
.
Подробности | |||||||
---|---|---|---|---|---|---|---|
Возвращаемые значения |
|
MatchesProfileId
bool MatchesProfileId( uint32_t aProfileId ) const
Возвращает true, если переданный profileId совпадает с сохраненным в схеме.
Подробности | |||
---|---|---|---|
Возвращаемые значения |
|
RetrieveData
WEAVE_ERROR RetrieveData( PropertyPathHandle aHandle, uint64_t aTagToWrite, nl::Weave::TLV::TLVWriter & aWriter, IGetDataDelegate *aDelegate, IDirtyPathCut *apDirtyPathCut ) const
Получив указатель пути и позицию записи в соответствующем элементе данных, извлеките данные листа из источника и запишите их в буфер, на который указывает писатель, в соответствии со схемой.
Подробности | |||||
---|---|---|---|---|---|
Возвращаемые значения |
|
RetrieveUpdatableDictionaryData
WEAVE_ERROR RetrieveUpdatableDictionaryData( PropertyPathHandle aHandle, uint64_t aTagToWrite, nl::Weave::TLV::TLVWriter & aWriter, IGetDataDelegate *aDelegate, PropertyPathHandle & aPropertyPathHandleOfDictItemToStartFrom ) const
StoreData
WEAVE_ERROR StoreData( PropertyPathHandle aHandle, nl::Weave::TLV::TLVReader & aReader, ISetDataDelegate *aDelegate, IPathFilter *aPathFilter ) const
Учитывая указатель пути и считыватель, расположенный на соответствующем элементе данных, обработайте буфер данных, на который указывает считыватель, и сохраните его в приемнике, вызывая вызов SetLeafData всякий раз, когда встречается элемент данных листа.
Подробности | |||||
---|---|---|---|---|---|
Возвращаемые значения |
|