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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
GetProfileId
uint32_t GetProfileId( void ) const
Devuelve la identificación del perfil del rasgo asociado.
Detalles | |||
---|---|---|---|
Valores devueltos |
|
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 |
| ||||||||
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 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 |
|
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 un0
inicial.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Valores devueltos |
|
CoincidenciasProfileId
bool MatchesProfileId( uint32_t aProfileId ) const
Devuelve verdadero si el profileId pasado coincide con el almacenado en el esquema.
Detalles | |||
---|---|---|---|
Valores devueltos |
|
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 |
|
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 |
|