En Google, luchamos por la equidad racial de la comunidad negra. Más información
Se usó la API de Cloud Translation para traducir esta página.
Switch to English

nl :: Tejido:: Perfiles: DataManagement_Current :: TraitSchemaEngine

#include <src/lib/profiles/data-management/Current/TraitData.h>

El motor de esquema toma la información de esquema asociada con un rasgo particular y proporciona facilidades para analizar y traducir eso en una forma utilizable por la maquinaria WDM.

Resumen

Esto incluye la conversión de PathHandles a rutas WDM (y viceversa), métodos para interpretar / consultar el esquema en sí y métodos para ayudar a leer / escribir datos hacia / desde TLV dado un identificador.

El esquema en sí se almacena en forma tabular, suficientemente descrito para permitir el análisis / composición genérica de rutas / datos WDM para cualquier rasgo dado. Estas tablas son lo que será el resultado final de 'code-gen' (el término en sí mismo es algo engañoso dada la ausencia de cualquier código generado: P)

Atributos estáticos públicos

kHandleTableOffset = 2
const uint32_t

Atributos públicos

mSchema
const Schema

Funciones publicas

FindLowestCommonAncestor ( PropertyPathHandle aHandle1, PropertyPathHandle aHandle2, PropertyPathHandle *aHandle1BranchChild, PropertyPathHandle *aHandle2BranchChild) const
Dados dos identificadores de propiedad, calcule el identificador más bajo que sirve como padre para ambos identificadores.
GetChildHandle ( PropertyPathHandle aParentHandle, uint8_t aContextTag) const
GetDepth ( PropertyPathHandle aHandle) const
int32_t
Calcule la profundidad en el árbol de esquema para un identificador determinado.
GetDictionaryItemHandle ( PropertyPathHandle aParentHandle, uint16_t aDictionaryKey) const
GetFirstChild ( PropertyPathHandle aParentHandle) const
Devuelve el primer identificador secundario asociado con un padre en particular.
GetHighestForwardVersion (SchemaVersion aVersion) const
SchemaVersion
Dada una versión de esquema de datos proporcionada, esto devolverá la versión de esquema compatible con versiones posteriores más alta.
GetLowestCompatibleVersion (SchemaVersion aVersion) const
SchemaVersion
Dada una versión de esquema de datos proporcionada, esto devolverá la versión de esquema compatible mínima.
GetMap ( PropertyPathHandle aHandle) const
const PropertyInfo *
Devuelve un puntero a la estructura PropertyInfo que describe un identificador de ruta en particular.
GetMaxVersion () const
SchemaVersion
GetMinVersion () const
SchemaVersion
GetNextChild ( PropertyPathHandle aParentId, PropertyPathHandle aChildHandle) const
Dado un identificador a un niño existente, devuelve el siguiente identificador secundario asociado con un padre en particular.
GetParent ( PropertyPathHandle aHandle) const
Devuelve el identificador principal de un identificador de ruta secundario determinado.
GetProfileId (void) const
uint32_t
Devuelve la identificación del perfil del rasgo asociado.
GetRelativePathTags (const PropertyPathHandle aCandidateHandle, uint64_t *aTags, const uint32_t aTagsSize, uint32_t & aNumTags) const
Convierte PropertyPathHandle en una matriz de etiquetas de contexto.
GetTag ( PropertyPathHandle aHandle) const
uint64_t
Devuelve la etiqueta asociada con un identificador de ruta.
GetVersionIntersection ( SchemaVersionRange & aVersion, SchemaVersionRange & aIntersection) const
bool
Dado un rango de versiones, esta función verifica si hay una intersección de compatibilidad entre eso y lo que es compatible con el esquema que respalda este motor de esquema.
IsDictionary ( PropertyPathHandle aHandle) const
bool
Devuelve verdadero si el identificador es un diccionario (y no en un diccionario; consulte el método a continuación).
IsEphemeral ( PropertyPathHandle aHandle) const
bool
IsInDictionary ( PropertyPathHandle aHandle, PropertyPathHandle & aDictionaryItemHandle) const
bool
Devuelve verdadero si el identificador está dentro de un diccionario (un elemento de diccionario).
IsLeaf ( PropertyPathHandle aPropertyHandle) const
bool
Devuelve verdadero si el identificador se refiere a un nodo hoja en el árbol del esquema.
IsNullable ( PropertyPathHandle aHandle) const
bool
IsOptional ( PropertyPathHandle aHandle) const
bool
IsParent ( PropertyPathHandle aChildHandle, PropertyPathHandle aParentHandle) const
bool
Comprueba si un identificador dado es hijo de otro identificador.
MapHandleToPath ( PropertyPathHandle aHandle,nl::Weave::TLV::TLVWriter & aPathWriter) const
Convierta el identificador de la ruta en una ruta TLV .
MapPathToHandle (nl::Weave::TLV::TLVReader & aPathReader, PropertyPathHandle & aHandle) const
Dado un lector ubicado en la raíz de un elemento de ruta WDM, lea las etiquetas relevantes y proporcione el identificador de ruta equivalente.
MapPathToHandle (const char *aPathString, PropertyPathHandle & aHandle) const
Dada la representación de una cadena de una ruta WDM, lea las etiquetas relevantes y proporcione el identificador de ruta equivalente.
MatchesProfileId (uint32_t aProfileId) const
bool
Devuelve verdadero si el profileId pasado coincide con el almacenado en el esquema.
RetrieveData ( PropertyPathHandle aHandle, uint64_t aTagToWrite,nl::Weave::TLV::TLVWriter & aWriter, IGetDataDelegate *aDelegate, IDirtyPathCut *apDirtyPathCut) const
Dado un identificador de ruta y una posición de escritor en el elemento de datos correspondiente, recupere los datos de hoja de la fuente y escríbalos en el búfer al que apunta el escritor de una manera compatible con el 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
Dado un identificador de ruta y un lector colocado en el elemento de datos correspondiente, procese el búfer de datos al que apunta el lector y guárdelo en el sumidero invocando la llamada SetLeafData siempre que se encuentre un elemento de datos hoja.

Clases

nl :: Weave :: Profiles :: DataManagement_Current :: TraitSchemaEngine :: IGetDataDelegate
nl :: Weave :: Profiles :: DataManagement_Current :: TraitSchemaEngine :: ISetDataDelegate

Estructuras

nl :: Weave :: Perfiles :: DataManagement_Current :: TraitSchemaEngine :: PropertyInfo
nl :: Weave :: Profiles :: DataManagement_Current :: TraitSchemaEngine :: Schema

La estructura del esquema principal que alberga la información del esquema.

Atributos estáticos públicos

kHandleTableOffset

const uint32_t kHandleTableOffset = 2

Atributos públicos

mSchema

const Schema mSchema

Funciones publicas

FindLowestCommonAncestor

PropertyPathHandle FindLowestCommonAncestor(
  PropertyPathHandle aHandle1,
  PropertyPathHandle aHandle2,
  PropertyPathHandle *aHandle1BranchChild,
  PropertyPathHandle *aHandle2BranchChild
) const 

Dados dos identificadores de propiedad, calcule el identificador más bajo que sirve como padre para ambos identificadores.

Además, devuelva las dos ramas secundarias que contienen cada uno de los dos identificadores (incluso si son iguales).

Detalles
Valores devueltos
PropertyPathHandle
Manejar al padre más bajo.

GetChildHandle

PropertyPathHandle GetChildHandle(
  PropertyPathHandle aParentHandle,
  uint8_t aContextTag
) const 

GetDepth

int32_t GetDepth(
  PropertyPathHandle aHandle
) const 

Calcule la profundidad en el árbol de esquema para un identificador determinado.

Detalles
Valores devueltos
int32_t
La profundidad en el árbol

GetDictionaryItemHandle

PropertyPathHandle GetDictionaryItemHandle(
  PropertyPathHandle aParentHandle,
  uint16_t aDictionaryKey
) const 

GetFirstChild

PropertyPathHandle GetFirstChild(
  PropertyPathHandle aParentHandle
) const 

Devuelve el primer identificador secundario asociado con un padre en particular.

Detalles
Valores devueltos
PropertyPathHandle
Mango del primer hijo.

GetHighestForwardVersion

SchemaVersion GetHighestForwardVersion(
  SchemaVersion aVersion
) const 

Dada una versión de esquema de datos proporcionada, esto devolverá la versión de esquema compatible con versiones posteriores más alta.

GetLowestCompatibleVersion

SchemaVersion GetLowestCompatibleVersion(
  SchemaVersion aVersion
) const 

Dada una versión de esquema de datos proporcionada, esto devolverá la versión de esquema compatible mínima.

GetMap

const PropertyInfo * GetMap(
  PropertyPathHandle aHandle
) const 

Devuelve un puntero a la estructura PropertyInfo que describe un identificador de ruta en particular.

Detalles
Valores devueltos
PropertyInfo*

GetMaxVersion

SchemaVersion GetMaxVersion() const 

GetMinVersion

SchemaVersion GetMinVersion() const 

GetNextChild

PropertyPathHandle GetNextChild(
  PropertyPathHandle aParentId,
  PropertyPathHandle aChildHandle
) const 

Dado un identificador a un niño existente, devuelve el siguiente identificador secundario asociado con un padre en particular.

Detalles
Valores devueltos
PropertyPathHandle
Mango del próximo niño.

GetParent

PropertyPathHandle GetParent(
  PropertyPathHandle aHandle
) const 

Devuelve el identificador principal de un identificador de ruta secundario determinado.

Las claves de diccionario en el identificador se conservan en el caso de que el identificador principal también sea un elemento de diccionario.

Detalles
Valores devueltos
PropertyPathHandle
Mango del padre.

GetProfileId

uint32_t GetProfileId(
  void
) const 

Devuelve la identificación del perfil del rasgo asociado.

Detalles
Valores devueltos
Trait
Perfil Id

GetRelativePathTags

WEAVE_ERROR GetRelativePathTags(
  const PropertyPathHandle aCandidateHandle,
  uint64_t *aTags,
  const uint32_t aTagsSize,
  uint32_t & aNumTags
) const 

Convierte PropertyPathHandle en una matriz de etiquetas de contexto.

Detalles
Parámetros
[in] aCandidateHandle
PropertyPathHandle que se va a convertir.
[in] aTags
Puntero a la matriz de salida.
[in] aTagsSize
Tamaño de la matriz aTags, en número de elementos.
[out] aNumTags
El número de etiquetas escritas en aTags
Devoluciones
WEAVE_NO_ERROR en caso de éxito; WEAVE_ERROR_NO_MEMORY si aTags es demasiado pequeño para almacenar la ruta completa.

GetTag

uint64_t GetTag(
  PropertyPathHandle aHandle
) const 

Devuelve la etiqueta asociada con un identificador de ruta.

Si es un elemento de diccionario, esta función devuelve el ProfileTag. De lo contrario, devuelve etiquetas de contexto.

Detalles
Valores devueltos
uint64_t

GetVersionIntersection

bool GetVersionIntersection(
  SchemaVersionRange & aVersion,
  SchemaVersionRange & aIntersection
) const 

Dado un rango de versiones, esta función verifica si hay una intersección de compatibilidad entre eso y lo que es compatible con el esquema que respalda este motor de esquema.

Si hay una intersección, la función devolverá verdadero y actualizará el argumento aIntersection pasado para reflejar los resultados de esa prueba de intersección.

IsDictionary

bool IsDictionary(
  PropertyPathHandle aHandle
) const 

Devuelve verdadero si el identificador es un diccionario (y no en un diccionario; consulte el método a continuación).

Detalles
Valores devueltos
bool

IsEphemeral

bool IsEphemeral(
  PropertyPathHandle aHandle
) const 

IsInDictionary

bool IsInDictionary(
  PropertyPathHandle aHandle,
  PropertyPathHandle & aDictionaryItemHandle
) const 

Devuelve verdadero si el identificador está dentro de un diccionario (un elemento de diccionario).

Un usuario pasado en el identificador (aDictionaryItemHandle) se actualiza para apuntar al identificador del elemento de diccionario más alto dentro del diccionario.

Detalles
Valores devueltos
bool

IsLeaf

bool IsLeaf(
  PropertyPathHandle aPropertyHandle
) const 

Devuelve verdadero si el identificador se refiere a un nodo hoja en el árbol del esquema.

Detalles
Valores devueltos
bool

IsNullable

bool IsNullable(
  PropertyPathHandle aHandle
) const 

Es opcional

bool IsOptional(
  PropertyPathHandle aHandle
) const 

IsParent

bool IsParent(
  PropertyPathHandle aChildHandle,
  PropertyPathHandle aParentHandle
) const 

Comprueba si un identificador dado es hijo de otro identificador.

Este puede ser un padre indirecto.

Detalles
Valores devueltos
bool

MapHandleToPath

WEAVE_ERROR MapHandleToPath(
  PropertyPathHandle aHandle,
  nl::Weave::TLV::TLVWriter & aPathWriter
) const 

Convierta el identificador de la ruta en una ruta TLV .

Detalles
Valores devueltos
WEAVE_NO_ERROR
Sobre el éxito.
other
No se pudo convertir el identificador a una ruta TLV

MapPathToHandle

WEAVE_ERROR MapPathToHandle(
  nl::Weave::TLV::TLVReader & aPathReader,
  PropertyPathHandle & aHandle
) const 

Dado un lector colocado en la raíz de un elemento de ruta WDM, lea las etiquetas relevantes y proporcione el identificador de ruta equivalente.

Detalles
Valores devueltos
WEAVE_NO_ERROR
Sobre el éxito.
WEAVE_ERROR_TLV_TAG_NOT_FOUND
Si no se pudo encontrar un identificador coincidente debido a una ruta mal formada o especificada incorrectamente.

MapPathToHandle

WEAVE_ERROR MapPathToHandle(
  const char *aPathString,
  PropertyPathHandle & aHandle
) const 

Dada la representación de una cadena de una ruta WDM, lea las etiquetas relevantes y proporcione el identificador de ruta equivalente.

La ruta de WDM se representa como una cadena utilizando las siguientes reglas:

  • las etiquetas están separadas con /
  • la ruta DEBE comenzar con un / inicial y NO DEBE contener una barra inclinada final
  • Las etiquetas numéricas en la ruta WDM DEBEN codificarse utilizando la biblioteca C estándar para la codificación de enteros a cadenas, es decir, la codificación decimal (por defecto) NO DEBE contener un 0 inicial, una codificación hexadecimal DEBE comenzar con 0x y la codificación octal DEBE contener un 0 inicial.

Detalles
Valores devueltos
WEAVE_NO_ERROR
Sobre el éxito.
WEAVE_ERROR_TLV_TAG_NOT_FOUND
Si no se pudo encontrar un identificador coincidente.
WEAVE_ERROR_INVALID_ARGUMENT
Si una cadena de ruta está mal formada

CoincidenciasProfileId

bool MatchesProfileId(
  uint32_t aProfileId
) const 

Devuelve verdadero si el profileId pasado coincide con el almacenado en el esquema.

Detalles
Valores devueltos
bool

Recuperar datos

WEAVE_ERROR RetrieveData(
  PropertyPathHandle aHandle,
  uint64_t aTagToWrite,
  nl::Weave::TLV::TLVWriter & aWriter,
  IGetDataDelegate *aDelegate,
  IDirtyPathCut *apDirtyPathCut
) const 

Dado un identificador de ruta y una posición de escritor en el elemento de datos correspondiente, recupere los datos de hoja de la fuente y escríbalos en el búfer al que apunta el escritor de una manera compatible con el esquema.

Detalles
Valores devueltos
WEAVE_NO_ERROR
Sobre el éxito.
other
Errores encontrados al escribir los datos.

RetrieveUpdatableDictionaryData

WEAVE_ERROR RetrieveUpdatableDictionaryData(
  PropertyPathHandle aHandle,
  uint64_t aTagToWrite,
  nl::Weave::TLV::TLVWriter & aWriter,
  IGetDataDelegate *aDelegate,
  PropertyPathHandle & aPropertyPathHandleOfDictItemToStartFrom
) const 

Almacenamiento de datos

WEAVE_ERROR StoreData(
  PropertyPathHandle aHandle,
  nl::Weave::TLV::TLVReader & aReader,
  ISetDataDelegate *aDelegate,
  IPathFilter *aPathFilter
) const 

Dado un identificador de ruta y un lector colocado en el elemento de datos correspondiente, procese el búfer de datos al que apunta el lector y guárdelo en el sumidero invocando la llamada SetLeafData siempre que se encuentre un elemento de datos hoja.

Detalles
Valores devueltos
WEAVE_NO_ERROR
Sobre el éxito.
other
Errores encontrados al analizar / procesar los datos.