En Google, luchamos por la equidad racial de la comunidad negra. Más información
Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

nl::Weave::Profiles::DataManagement_Current::TraitEngine

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

El motor de esquema toma información de esquema asociada con una característica particular y proporciona instalaciones para analizarla y traducirla a un formato que pueda usar la maquinaria WDM.

Resumen

Esto incluye la conversión de PathHandles a rutas de WDM (y viceversa), métodos para interpretar o consultar el esquema en sí y métodos que ayudan a leer y escribir datos desde y hacia TLV en función de un controlador.

El esquema en sí se almacena en forma de tabla, descrito lo suficiente como para permitir el análisis o la composición genérica de rutas/datos de WDM para una característica determinada. Estas tablas serán el resultado final de 'code-gen' (el término en sí es un poco engañoso debido a la ausencia de un código :P) generado

Atributos estáticos públicos

kHandleTableOffset = 2
const uint32_t

Atributos públicos

mSchema
const Schema

Funciones públicas

FindLowestCommonAncestor(PropertyPathHandle aHandle1, PropertyPathHandle aHandle2, PropertyPathHandle *aHandle1BranchChild, PropertyPathHandle *aHandle2BranchChild) const
En el caso de dos controladores de propiedad, calcula el controlador más bajo que funcione como elemento superior en ambos controladores.
GetChildHandle(PropertyPathHandle aParentHandle, uint8_t aContextTag) const
GetDepth(PropertyPathHandle aHandle) const
int32_t
Calcula la profundidad del árbol de esquemas de un controlador determinado.
GetDictionaryItemHandle(PropertyPathHandle aParentHandle, uint16_t aDictionaryKey) const
GetFirstChild(PropertyPathHandle aParentHandle) const
Muestra el primer controlador secundario asociado con un elemento superior en particular.
GetHighestForwardVersion(SchemaVersion aVersion) const
SchemaVersion
Según la versión de un esquema de datos proporcionada, se mostrará la versión de esquema compatible más reciente.
GetLowestCompatibleVersion(SchemaVersion aVersion) const
SchemaVersion
Según la versión de un esquema de datos proporcionada, se mostrará la versión mínima compatible con el esquema.
GetMap(PropertyPathHandle aHandle) const
const PropertyInfo *
Muestra un puntero a la estructura PropertyInfo que describe un controlador de ruta en particular.
GetMaxVersion() const
SchemaVersion
GetMinVersion() const
SchemaVersion
GetNextChild(PropertyPathHandle aParentId, PropertyPathHandle aChildHandle) const
Según el control de un elemento secundario existente, se muestra el siguiente controlador secundario asociado con un elemento superior en particular.
GetParent(PropertyPathHandle aHandle) const
Muestra el controlador superior de un controlador de ruta de acceso secundario determinado.
GetProfileId(void) const
uint32_t
Muestra el ID de perfil de la característica asociada.
GetRelativePathTags(const PropertyPathHandle aCandidateHandle, uint64_t *aTags, const uint32_t aTagsSize, uint32_t & aNumTags) const
Convierte un PropertyPathHandle en un array de etiquetas de contexto.
GetTag(PropertyPathHandle aHandle) const
uint64_t
Muestra la etiqueta asociada con un controlador 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 ese esquema y lo que admite el esquema que respalda este motor de esquema.
IsDictionary(PropertyPathHandle aHandle) const
bool
El resultado es verdadero si el controlador es un diccionario (y no en un diccionario; consulta el siguiente método).
IsEphemeral(PropertyPathHandle aHandle) const
bool
IsInDictionary(PropertyPathHandle aHandle, PropertyPathHandle & aDictionaryItemHandle) const
bool
El resultado es verdadero si el controlador está dentro de un diccionario (un elemento del diccionario).
IsLeaf(PropertyPathHandle aPropertyHandle) const
bool
El resultado es verdadero si el controlador hace referencia a un nodo de hoja del árbol de esquema.
IsNullable(PropertyPathHandle aHandle) const
bool
IsOptional(PropertyPathHandle aHandle) const
bool
IsParent(PropertyPathHandle aChildHandle, PropertyPathHandle aParentHandle) const
bool
Comprueba si un controlador determinado es un elemento secundario de otro controlador.
MapHandleToPath(PropertyPathHandle aHandle, nl::Weave::TLV::TLVWriter & aPathWriter) const
Convierte el controlador de ruta en una ruta TLV.
MapPathToHandle(nl::Weave::TLV::TLVReader & aPathReader, PropertyPathHandle & aHandle) const
Dado un lector posicionado en la raíz de un elemento de ruta de WDM, lee las etiquetas relevantes y proporciona el controlador de ruta equivalente.
MapPathToHandle(const char *aPathString, PropertyPathHandle & aHandle) const
Dada la representación de una string de una ruta de WDM, lee las etiquetas relevantes y proporciona el controlador de ruta equivalente.
MatchesProfileId(uint32_t aProfileId) const
bool
El resultado es verdadero si el pasado en profileId coincide con el contenido en el esquema.
RetrieveData(PropertyPathHandle aHandle, uint64_t aTagToWrite, nl::Weave::TLV::TLVWriter & aWriter, IGetDataDelegate *aDelegate, IDirtyPathCut *apDirtyPathCut) const
Con un controlador de ruta y una posición de escritor en el elemento de datos correspondiente, recuperar datos de hoja del origen y escribirlos en el búfer al que apunta el escritor de manera que cumpla con los esquemas.
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
Con un controlador de ruta y un lector posicionados en el elemento de datos correspondiente, procesa el búfer de datos al que apunta el lector y almacénalo en el receptor invocando la llamada SetLeafData cada vez que se encuentre un elemento de datos de hoja.

Clases

nl::Weave::Perfiles::DataManagement_Current::TraitSchemaEngine::IGetDataDelegate
nl::Weave::Perfiles::DataManagement_Current::TraitSchemaEngine::ISetDataDelegate

Structs

nl::Weave::Perfiles::DataManagement_Current::TraitSchemaEngine::PropertyInfo
nl::Weave::Perfiles::DataManagement_Current::TraitSchemaEngine::Esquema

La estructura principal del esquema que contiene la información del esquema

Atributos estáticos públicos

kHandleTableOffset

const uint32_t kHandleTableOffset = 2

Atributos públicos

Esquema m

const Schema mSchema

Funciones públicas

FindLowestCommonAncestor

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

En el caso de dos controladores de propiedad, calcula el controlador más bajo que funcione como elemento superior en ambos controladores.

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

Detalles
Valores que se muestran
PropertyPathHandle
Controla al elemento superior más bajo.

GetChildHandle

PropertyPathHandle GetChildHandle(
  PropertyPathHandle aParentHandle,
  uint8_t aContextTag
) const 

Obtener profundidad

int32_t GetDepth(
  PropertyPathHandle aHandle
) const 

Calcula la profundidad del árbol de esquemas de un controlador determinado.

Detalles
Valores que se muestran
int32_t
La profundidad del árbol

GetDictionaryItemHandle

PropertyPathHandle GetDictionaryItemHandle(
  PropertyPathHandle aParentHandle,
  uint16_t aDictionaryKey
) const 

GetFirstChild

PropertyPathHandle GetFirstChild(
  PropertyPathHandle aParentHandle
) const 

Muestra el primer controlador secundario asociado con un elemento superior en particular.

Detalles
Valores que se muestran
PropertyPathHandle
Controlador del primer elemento secundario.

GetHighestForwardVersion

SchemaVersion GetHighestForwardVersion(
  SchemaVersion aVersion
) const 

Según la versión de un esquema de datos proporcionada, se mostrará la versión de esquema compatible más reciente.

GetLowestCompatibleVersion

SchemaVersion GetLowestCompatibleVersion(
  SchemaVersion aVersion
) const 

Según la versión de un esquema de datos proporcionada, se mostrará la versión mínima compatible con el esquema.

GetMap

const PropertyInfo * GetMap(
  PropertyPathHandle aHandle
) const 

Muestra un puntero a la estructura PropertyInfo que describe un controlador de ruta en particular.

Detalles
Valores que se muestran
PropertyInfo*

GetMaxVersion

SchemaVersion GetMaxVersion() const 

GetMinVersion

SchemaVersion GetMinVersion() const 

GetNextChild

PropertyPathHandle GetNextChild(
  PropertyPathHandle aParentId,
  PropertyPathHandle aChildHandle
) const 

Según el control de un elemento secundario existente, se muestra el siguiente controlador secundario asociado con un elemento superior en particular.

Detalles
Valores que se muestran
PropertyPathHandle
Controlador del próximo elemento secundario.

GetParent

PropertyPathHandle GetParent(
  PropertyPathHandle aHandle
) const 

Muestra el controlador superior de un controlador de ruta de acceso secundario determinado.

Las claves de diccionario del controlador se conservan en los casos en que el controlador superior también es un elemento de diccionario.

Detalles
Valores que se muestran
PropertyPathHandle
Controlador del elemento superior.

ID de perfil

uint32_t GetProfileId(
  void
) const 

Muestra el ID de perfil de la característica asociada.

Detalles
Valores que se muestran
Trait
ID de perfil

GetRelativePathTags

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

Convierte un PropertyPathHandle en un array de etiquetas de contexto.

Detalles
Parámetros
[in] aCandidateHandle
PropertyPathHandle para convertir.
[in] aTags
Es el puntero al arreglo de salida.
[in] aTagsSize
Tamaño del array aTags, en la cantidad de elementos
[out] aNumTags
La cantidad de etiquetas escritas en aTags
Qué muestra
WEAVE_NO_ERROR en caso de éxito; WEAVE_ERROR_NO_MEMORY si aTag es demasiado pequeño para almacenar la ruta completa.

GetTag

uint64_t GetTag(
  PropertyPathHandle aHandle
) const 

Muestra la etiqueta asociada con un controlador de ruta.

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

Detalles
Valores que se muestran
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 ese esquema y lo que admite el esquema que respalda este motor de esquema.

Si hay una intersección, la función mostrará el valor "true" y actualizará el argumento aIntersection que se pasó para reflejar los resultados de esa prueba de intersección.

IsDictionary

bool IsDictionary(
  PropertyPathHandle aHandle
) const 

El resultado es verdadero si el controlador es un diccionario (y no en un diccionario; consulta el siguiente método).

Detalles
Valores que se muestran
bool

Isefemeral

bool IsEphemeral(
  PropertyPathHandle aHandle
) const 

IsInDictionary

bool IsInDictionary(
  PropertyPathHandle aHandle,
  PropertyPathHandle & aDictionaryItemHandle
) const 

El resultado es verdadero si el controlador está dentro de un diccionario (un elemento del diccionario).

Un usuario que se pasó en el controlador (aDictionaryItemHandle) se actualiza para apuntar al controlador de elementos del diccionario superior dentro del diccionario.

Detalles
Valores que se muestran
bool

IsLeaf

bool IsLeaf(
  PropertyPathHandle aPropertyHandle
) const 

El resultado es verdadero si el controlador hace referencia a un nodo de hoja del árbol de esquema.

Detalles
Valores que se muestran
bool

No anulable

bool IsNullable(
  PropertyPathHandle aHandle
) const 

Es opcional

bool IsOptional(
  PropertyPathHandle aHandle
) const 

Es el padre o la madre

bool IsParent(
  PropertyPathHandle aChildHandle,
  PropertyPathHandle aParentHandle
) const 

Comprueba si un controlador determinado es un elemento secundario de otro controlador.

Puede ser un elemento superior directo.

Detalles
Valores que se muestran
bool

MapHandleToPath.

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

Convierte el controlador de ruta en una ruta TLV.

Detalles
Valores que se muestran
WEAVE_NO_ERROR
Si la operación se realiza correctamente
other
No se pudo convertir el controlador en una ruta TLV.

MapPathToHandle

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

Dado un lector posicionado en la raíz de un elemento de ruta de WDM, lee las etiquetas relevantes y proporciona el controlador de ruta equivalente.

Detalles
Valores que se muestran
WEAVE_NO_ERROR
Si la operación se realiza correctamente
WEAVE_ERROR_TLV_TAG_NOT_FOUND
Si no se pudo encontrar un controlador coincidente debido a una ruta con formato incorrecto o incorrecto.

MapPathToHandle

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

Dada la representación de una string de una ruta de WDM, lee las etiquetas relevantes y proporciona el controlador de ruta equivalente.

La ruta de acceso de WDM se representa como una string con las siguientes reglas:

  • las etiquetas se separan con /
  • la ruta DEBE comenzar con una / y NO DEBE contener una barra diagonal
  • las etiquetas numéricas de la ruta WDM DEBEN codificarse con la biblioteca C estándar para la codificación de números enteros a strings, es decir, la codificación decimal (predeterminada) NO DEBE contener un 0 inicial, una codificación hexadecimal DEBE comenzar con 0x y la codificación octal DEBE contener un 0 al principio.

Detalles
Valores que se muestran
WEAVE_NO_ERROR
Si la operación se realiza correctamente
WEAVE_ERROR_TLV_TAG_NOT_FOUND
Si no se pudo encontrar un controlador coincidente.
WEAVE_ERROR_INVALID_ARGUMENT
Si una string de ruta de acceso es incorrecta

ID de perfiles de coincidencias

bool MatchesProfileId(
  uint32_t aProfileId
) const 

El resultado es verdadero si el pasado en profileId coincide con el contenido en el esquema.

Detalles
Valores que se muestran
bool

Recuperar datos

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

Con un controlador de ruta y una posición de escritor en el elemento de datos correspondiente, recuperar datos de hoja del origen y escribirlos en el búfer al que apunta el escritor de manera que cumpla con los esquemas.

Detalles
Valores que se muestran
WEAVE_NO_ERROR
Si la operación se realiza correctamente
other
Se encontraron errores al escribir los datos.

RetrieveUpdatableDictionaryData

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

Almacenar datos

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

Con un controlador de ruta y un lector posicionados en el elemento de datos correspondiente, procesa el búfer de datos al que apunta el lector y almacénalo en el receptor invocando la llamada SetLeafData cada vez que se encuentre un elemento de datos de hoja.

Detalles
Valores que se muestran
WEAVE_NO_ERROR
Si la operación se realiza correctamente
other
Se encontraron errores al analizar/procesar los datos.