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:: |
|
nl:: |
Structs |
|
---|---|
nl:: |
|
nl:: |
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
ID de perfil
uint32_t GetProfileId( void ) const
Muestra el ID de perfil de la característica asociada.
Detalles | |||
---|---|---|---|
Valores que se muestran |
|
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 |
|
||||||||
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
MapHandleToPath.
WEAVE_ERROR MapHandleToPath( PropertyPathHandle aHandle, nl::Weave::TLV::TLVWriter & aPathWriter ) const
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 |
|
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 un0
al principio.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Valores que se muestran |
|
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 |
|
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 |
|
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 |
|