nl:: Weave:: Profiles:: DataManagement_Current:: TraitSchemaEngine
#include <src/lib/profiles/data-management/Current/TraitData.h>
O mecanismo de esquema recebe informações de esquema associadas a uma característica específica e fornece instalações para analisar e traduzir essas informações em um formato utilizável pelo maquinário WDM.
Resumo
Isso inclui a conversão de PathHandles para caminhos WDM (e vice-versa), métodos para interpretar/consultar o esquema em si e métodos para ajudar a ler/gravar dados de/para o TLV usando um identificador.
O esquema em si é armazenado em uma forma de tabela, com descrições suficientes para possibilitar a análise/composição genérica de dados/caminhos do WDM para qualquer característica. Essas tabelas são os resultados finais do "code-gen" (o termo em si é um pouco enganoso, dada a ausência de qualquer código gerado :P)
Atributos estáticos públicos |
|
---|---|
kHandleTableOffset = 2
|
const uint32_t
|
Atributos públicos |
|
---|---|
mSchema
|
const Schema
|
Funções públicas |
|
---|---|
FindLowestCommonAncestor(PropertyPathHandle aHandle1, PropertyPathHandle aHandle2, PropertyPathHandle *aHandle1BranchChild, PropertyPathHandle *aHandle2BranchChild) const
|
Dados dois identificadores de propriedade, calcule o identificador mais baixo que serve como pai para ambos.
|
GetChildHandle(PropertyPathHandle aParentHandle, uint8_t aContextTag) const
|
|
GetDepth(PropertyPathHandle aHandle) const
|
int32_t
Calcule a profundidade na árvore de esquemas de um determinado identificador.
|
GetDictionaryItemHandle(PropertyPathHandle aParentHandle, uint16_t aDictionaryKey) const
|
|
GetFirstChild(PropertyPathHandle aParentHandle) const
|
Retorna o primeiro identificador filho associado a um pai específico.
|
GetHighestForwardVersion(SchemaVersion aVersion) const
|
SchemaVersion
Com uma versão do esquema de dados fornecida, retorna a versão do esquema compatível com versões futuras mais recentes.
|
GetLowestCompatibleVersion(SchemaVersion aVersion) const
|
SchemaVersion
Dada uma versão do esquema de dados fornecida, isso vai retornar a versão mínima do esquema compatível.
|
GetMap(PropertyPathHandle aHandle) const
|
const PropertyInfo *
Retorna um ponteiro para a estrutura PropertyInfo que descreve um identificador de caminho específico.
|
GetMaxVersion() const
|
SchemaVersion
|
GetMinVersion() const
|
SchemaVersion
|
GetNextChild(PropertyPathHandle aParentId, PropertyPathHandle aChildHandle) const
|
Dado um identificador para um filho existente, retorna o próximo identificador filho associado a um pai específico.
|
GetParent(PropertyPathHandle aHandle) const
|
Retorna o identificador pai de um determinado identificador de caminho filho.
|
GetProfileId(void) const
|
uint32_t
Retorna o ID do perfil da característica associada.
|
GetRelativePathTags(const PropertyPathHandle aCandidateHandle, uint64_t *aTags, const uint32_t aTagsSize, uint32_t & aNumTags) const
|
Converte um PropertyPathHandle em uma matriz de tags de contexto.
|
GetTag(PropertyPathHandle aHandle) const
|
uint64_t
Retorna a tag associada a um identificador de caminho.
|
GetVersionIntersection(SchemaVersionRange & aVersion, SchemaVersionRange & aIntersection) const
|
bool
Dado um intervalo de versões, essa função verifica se há uma interseção de compatibilidade entre isso e o que é suportado pelo esquema que está apoiando esse mecanismo de esquema.
|
IsDictionary(PropertyPathHandle aHandle) const
|
bool
Retorna verdadeiro se o identificador for um dicionário (e não em um dicionário). Consulte o método abaixo.
|
IsEphemeral(PropertyPathHandle aHandle) const
|
bool
|
IsInDictionary(PropertyPathHandle aHandle, PropertyPathHandle & aDictionaryItemHandle) const
|
bool
Retorna "true" se o identificador está dentro de um dicionário (um elemento de dicionário).
|
IsLeaf(PropertyPathHandle aPropertyHandle) const
|
bool
Retorna "true" se o identificador se referir a um nó de folha na árvore de esquema.
|
IsNullable(PropertyPathHandle aHandle) const
|
bool
|
IsOptional(PropertyPathHandle aHandle) const
|
bool
|
IsParent(PropertyPathHandle aChildHandle, PropertyPathHandle aParentHandle) const
|
bool
Verifica se um identificador específico é filho de outro.
|
MapHandleToPath(PropertyPathHandle aHandle, nl::Weave::TLV::TLVWriter & aPathWriter) const
|
Converta o identificador do caminho em um caminho TLV.
|
MapPathToHandle(nl::Weave::TLV::TLVReader & aPathReader, PropertyPathHandle & aHandle) const
|
Considerando um leitor posicionado na raiz de um elemento de caminho WDM, leia as tags relevantes e forneça o identificador do caminho equivalente.
|
MapPathToHandle(const char *aPathString, PropertyPathHandle & aHandle) const
|
Considerando a representação de uma string de um caminho WDM, leia as tags relevantes e forneça o identificador de caminho equivalente.
|
MatchesProfileId(uint32_t aProfileId) const
|
bool
Retorna true se o "profileId" transmitido corresponde ao armazenado no esquema.
|
RetrieveData(PropertyPathHandle aHandle, uint64_t aTagToWrite, nl::Weave::TLV::TLVWriter & aWriter, IGetDataDelegate *aDelegate, IDirtyPathCut *apDirtyPathCut) const
|
Com um identificador de caminho e uma posição de gravador no elemento de dados correspondente, recupere dados de folha da fonte e grave-os no buffer para onde o gravador aponta de uma maneira compatível com o esquema.
|
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
|
Com um identificador de caminho e um leitor posicionado no elemento de dados correspondente, processe o buffer de dados para o qual o leitor aponta e armazene-o no coletor invocando a chamada SetLeafData sempre que um item de dados de folha for encontrado.
|
Classes |
|
---|---|
nl:: |
|
nl:: |
Estruturas |
|
---|---|
nl:: |
|
nl:: |
A principal estrutura do esquema que abriga as informações do esquema. |
Atributos estáticos públicos
kHandleTableOffset
const uint32_t kHandleTableOffset = 2
Atributos públicos
mSchema
const Schema mSchema
Funções públicas
FindLowestCommonAncestor
PropertyPathHandle FindLowestCommonAncestor( PropertyPathHandle aHandle1, PropertyPathHandle aHandle2, PropertyPathHandle *aHandle1BranchChild, PropertyPathHandle *aHandle2BranchChild ) const
Dados dois identificadores de propriedade, calcule o identificador mais baixo que serve como pai para ambos.
Além disso, retorne as duas ramificações filhas que contêm cada um dos dois identificadores (mesmo que sejam iguais).
Detalhes | |||
---|---|---|---|
Valores de retorno |
|
GetChildHandle
PropertyPathHandle GetChildHandle( PropertyPathHandle aParentHandle, uint8_t aContextTag ) const
GetDepth
int32_t GetDepth( PropertyPathHandle aHandle ) const
Calcule a profundidade na árvore de esquemas de um determinado identificador.
Detalhes | |||
---|---|---|---|
Valores de retorno |
|
GetDictionaryItemHandle
PropertyPathHandle GetDictionaryItemHandle( PropertyPathHandle aParentHandle, uint16_t aDictionaryKey ) const
GetFirstChild
PropertyPathHandle GetFirstChild( PropertyPathHandle aParentHandle ) const
Retorna o primeiro identificador filho associado a um pai específico.
Detalhes | |||
---|---|---|---|
Valores de retorno |
|
GetHighestForwardVersion
SchemaVersion GetHighestForwardVersion( SchemaVersion aVersion ) const
Com uma versão do esquema de dados fornecida, retorna a versão do esquema compatível com versões futuras mais recentes.
GetLowestCompatibleVersion
SchemaVersion GetLowestCompatibleVersion( SchemaVersion aVersion ) const
Dada uma versão do esquema de dados fornecida, isso vai retornar a versão mínima do esquema compatível.
GetMap
const PropertyInfo * GetMap( PropertyPathHandle aHandle ) const
Retorna um ponteiro para a estrutura PropertyInfo que descreve um identificador de caminho específico.
Detalhes | |||
---|---|---|---|
Valores de retorno |
|
GetMaxVersion
SchemaVersion GetMaxVersion() const
GetMinVersion
SchemaVersion GetMinVersion() const
GetNextChild
PropertyPathHandle GetNextChild( PropertyPathHandle aParentId, PropertyPathHandle aChildHandle ) const
Dado um identificador para um filho existente, retorna o próximo identificador filho associado a um pai específico.
Detalhes | |||
---|---|---|---|
Valores de retorno |
|
GetParent
PropertyPathHandle GetParent( PropertyPathHandle aHandle ) const
Retorna o identificador pai de um determinado identificador de caminho filho.
As chaves de dicionário no identificador são preservadas caso o identificador pai também seja um elemento de dicionário.
Detalhes | |||
---|---|---|---|
Valores de retorno |
|
GetProfileId
uint32_t GetProfileId( void ) const
Retorna o ID do perfil da característica associada.
Detalhes | |||
---|---|---|---|
Valores de retorno |
|
GetRelativePathTags
WEAVE_ERROR GetRelativePathTags( const PropertyPathHandle aCandidateHandle, uint64_t *aTags, const uint32_t aTagsSize, uint32_t & aNumTags ) const
Converte um PropertyPathHandle em uma matriz de tags de contexto.
Detalhes | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||||
Retornos |
WEAVE_NO_ERROR em caso de sucesso. WEAVE_ERROR_NO_MEMORY se as aTags forem muito pequenas para armazenar o caminho completo.
|
GetTag
uint64_t GetTag( PropertyPathHandle aHandle ) const
Retorna a tag associada a um identificador de caminho.
Se for um elemento de dicionário, essa função retornará a ProfileTag. Caso contrário, retorna tags de contexto.
Detalhes | |||
---|---|---|---|
Valores de retorno |
|
GetVersionIntersection
bool GetVersionIntersection( SchemaVersionRange & aVersion, SchemaVersionRange & aIntersection ) const
Dado um intervalo de versões, essa função verifica se há uma interseção de compatibilidade entre isso e o que é suportado pelo esquema que está apoiando esse mecanismo de esquema.
Se houver uma interseção, a função retornará "true" e atualizará o argumento aIntersection transmitido para refletir os resultados desse teste de interseção.
IsDictionary
bool IsDictionary( PropertyPathHandle aHandle ) const
Retorna verdadeiro se o identificador for um dicionário (e não em um dicionário). Consulte o método abaixo.
Detalhes | |||
---|---|---|---|
Valores de retorno |
|
IsEphemeral
bool IsEphemeral( PropertyPathHandle aHandle ) const
IsInDictionary
bool IsInDictionary( PropertyPathHandle aHandle, PropertyPathHandle & aDictionaryItemHandle ) const
Retorna "true" se o identificador está dentro de um dicionário (um elemento de dicionário).
Um usuário transmitido no identificador (aDictionaryItemHandle) é atualizado para apontar para o identificador do elemento de dicionário mais acima no dicionário.
Detalhes | |||
---|---|---|---|
Valores de retorno |
|
IsLeaf
bool IsLeaf( PropertyPathHandle aPropertyHandle ) const
Retorna "true" se o identificador se referir a um nó de folha na árvore de esquema.
Detalhes | |||
---|---|---|---|
Valores de retorno |
|
IsNullable
bool IsNullable( PropertyPathHandle aHandle ) const
IsOptional
bool IsOptional( PropertyPathHandle aHandle ) const
IsParent
bool IsParent( PropertyPathHandle aChildHandle, PropertyPathHandle aParentHandle ) const
Verifica se um identificador específico é filho de outro.
Pode ser um pai indireto.
Detalhes | |||
---|---|---|---|
Valores de retorno |
|
MapHandleToPath
WEAVE_ERROR MapHandleToPath( PropertyPathHandle aHandle, nl::Weave::TLV::TLVWriter & aPathWriter ) const
MapPathToHandle
WEAVE_ERROR MapPathToHandle( nl::Weave::TLV::TLVReader & aPathReader, PropertyPathHandle & aHandle ) const
Considerando um leitor posicionado na raiz de um elemento de caminho WDM, leia as tags relevantes e forneça o identificador do caminho equivalente.
Detalhes | |||||
---|---|---|---|---|---|
Valores de retorno |
|
MapPathToHandle
WEAVE_ERROR MapPathToHandle( const char *aPathString, PropertyPathHandle & aHandle ) const
Considerando a representação de uma string de um caminho WDM, leia as tags relevantes e forneça o identificador de caminho equivalente.
O caminho WDM é representado como uma string usando as seguintes regras:
- as tags são separadas por
/
- o caminho PRECISA começar com uma
/
inicial e NÃO PODE conter uma barra final. - as tags numéricas no caminho WDM PRECISAM ser codificadas usando a biblioteca C padrão para codificação de número inteiro para string, ou seja, a codificação decimal (padrão) NÃO PODE conter um 0 no início, uma codificação hexadecimal PRECISA começar com
0x
e a codificação octal PRECISA conter um0
à esquerda.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Valores de retorno |
|
MatchesProfileId
bool MatchesProfileId( uint32_t aProfileId ) const
Retorna true se o "profileId" transmitido corresponde ao armazenado no esquema.
Detalhes | |||
---|---|---|---|
Valores de retorno |
|
RetrieveData
WEAVE_ERROR RetrieveData( PropertyPathHandle aHandle, uint64_t aTagToWrite, nl::Weave::TLV::TLVWriter & aWriter, IGetDataDelegate *aDelegate, IDirtyPathCut *apDirtyPathCut ) const
Com um identificador de caminho e uma posição de gravador no elemento de dados correspondente, recupere dados de folha da fonte e grave-os no buffer para onde o gravador aponta de uma maneira compatível com o esquema.
Detalhes | |||||
---|---|---|---|---|---|
Valores de retorno |
|
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
Com um identificador de caminho e um leitor posicionado no elemento de dados correspondente, processe o buffer de dados para o qual o leitor aponta e armazene-o no coletor invocando a chamada SetLeafData sempre que um item de dados de folha for encontrado.
Detalhes | |||||
---|---|---|---|---|---|
Valores de retorno |
|