nl:: Weave:: Profiles:: DataManagement_Current:: TraitSchemaEngine
#include <src/lib/profiles/data-management/Current/TraitData.h>
El motor de esquemas toma la información del esquema asociada con un rasgo en particular y proporciona herramientas para analizarla y traducirla a un formato que pueda usar el mecanismo de 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 para ayudar a leer o escribir datos desde o hacia TLV con un identificador.
El esquema en sí se almacena en forma tabular y se describe lo suficiente como para permitir el análisis o la composición genéricos de las rutas de acceso o los datos de WDM para cualquier rasgo determinado. Estas tablas serán el resultado final de "code-gen" (el término en sí es un poco engañoso, ya que no hay ningún código generado :P).
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
|
Dado dos controladores de propiedad, calcula el controlador más bajo que funciona como elemento superior para ambos.
|
GetChildHandle(PropertyPathHandle aParentHandle, uint8_t aContextTag) const
|
|
GetDepth(PropertyPathHandle aHandle) const
|
int32_t
Calcula la profundidad en el árbol de esquemas para un identificador determinado.
|
GetDictionaryItemHandle(PropertyPathHandle aParentHandle, uint16_t aDictionaryKey) const
|
|
GetFirstChild(PropertyPathHandle aParentHandle) const
|
Muestra el primer identificador secundario asociado con un elemento superior en particular.
|
GetHighestForwardVersion(SchemaVersion aVersion) const
|
SchemaVersion
Dada una versión de esquema de datos proporcionada, se mostrará 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, se mostrará la versión mínima compatible del esquema.
|
GetMap(PropertyPathHandle aHandle) const
|
const PropertyInfo *
Muestra un puntero a la estructura PropertyInfo que describe un identificador de ruta de acceso en particular.
|
GetMaxVersion() const
|
SchemaVersion
|
GetMinVersion() const
|
SchemaVersion
|
GetNextChild(PropertyPathHandle aParentId, PropertyPathHandle aChildHandle) const
|
Dado el identificador de un elemento secundario existente, muestra el siguiente identificador secundario asociado con un elemento superior en particular.
|
GetParent(PropertyPathHandle aHandle) const
|
Muestra el identificador superior de un identificador de ruta secundario determinado.
|
GetProfileId(void) const
|
uint32_t
Devuelve el ID de perfil del atributo asociado.
|
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 identificador de ruta.
|
GetVersionIntersection(SchemaVersionRange & aVersion, SchemaVersionRange & aIntersection) const
|
bool
Dada un rango de versiones, esta función verifica si hay una intersección de compatibilidad entre eso y lo que admite el esquema que respalda este motor de esquemas.
|
IsDictionary(PropertyPathHandle aHandle) const
|
bool
Muestra verdadero si el identificador es un diccionario (y no está en un diccionario; consulta el método a continuación).
|
IsEphemeral(PropertyPathHandle aHandle) const
|
bool
|
IsInDictionary(PropertyPathHandle aHandle, PropertyPathHandle & aDictionaryItemHandle) const
|
bool
Muestra true si el controlador está dentro de un diccionario (un elemento del diccionario).
|
IsLeaf(PropertyPathHandle aPropertyHandle) const
|
bool
Muestra verdadero si el identificador hace referencia a un nodo hoja en el árbol de esquemas.
|
IsNullable(PropertyPathHandle aHandle) const
|
bool
|
IsOptional(PropertyPathHandle aHandle) const
|
bool
|
IsParent(PropertyPathHandle aChildHandle, PropertyPathHandle aParentHandle) const
|
bool
Verifica si un identificador determinado es secundario de otro.
|
MapHandleToPath(PropertyPathHandle aHandle, nl::Weave::TLV::TLVWriter & aPathWriter) const
|
Convierte el identificador de ruta en una ruta de acceso TLV.
|
MapPathToHandle(nl::Weave::TLV::TLVReader & aPathReader, PropertyPathHandle & aHandle) const
|
Dado un lector ubicado en la raíz de un elemento de ruta de WDM, lee las etiquetas relevantes y proporciona el identificador de ruta equivalente.
|
MapPathToHandle(const char *aPathString, PropertyPathHandle & aHandle) const
|
Dada una representación de cadena de una ruta de acceso de WDM, lee las etiquetas relevantes y proporciona el identificador de ruta de acceso equivalente.
|
MatchesProfileId(uint32_t aProfileId) const
|
bool
Muestra 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 de acceso y una posición de escritor en el elemento de datos correspondiente, recupera los datos de hoja de la fuente y escríbelos 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 de acceso y un lector posicionado 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:: |
Es la estructura de 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 públicas
FindLowestCommonAncestor
PropertyPathHandle FindLowestCommonAncestor( PropertyPathHandle aHandle1, PropertyPathHandle aHandle2, PropertyPathHandle *aHandle1BranchChild, PropertyPathHandle *aHandle2BranchChild ) const
Dado dos identificadores de propiedad, calcula el identificador más bajo que funciona como elemento superior para ambos.
Además, muestra las dos ramas secundarias que contienen cada uno de los dos controladores (incluso si son iguales).
Detalles | |||
---|---|---|---|
Valores de retorno |
|
GetChildHandle
PropertyPathHandle GetChildHandle( PropertyPathHandle aParentHandle, uint8_t aContextTag ) const
GetDepth
int32_t GetDepth( PropertyPathHandle aHandle ) const
Calcula la profundidad en el árbol de esquemas para un identificador determinado.
Detalles | |||
---|---|---|---|
Valores de retorno |
|
GetDictionaryItemHandle
PropertyPathHandle GetDictionaryItemHandle( PropertyPathHandle aParentHandle, uint16_t aDictionaryKey ) const
GetFirstChild
PropertyPathHandle GetFirstChild( PropertyPathHandle aParentHandle ) const
Muestra el primer identificador secundario asociado con un elemento superior en particular.
Detalles | |||
---|---|---|---|
Valores de retorno |
|
GetHighestForwardVersion
SchemaVersion GetHighestForwardVersion( SchemaVersion aVersion ) const
Dada una versión de esquema de datos proporcionada, se mostrará la versión de esquema compatible con versiones posteriores más alta.
GetLowestCompatibleVersion
SchemaVersion GetLowestCompatibleVersion( SchemaVersion aVersion ) const
Si se proporciona una versión de esquema de datos, se mostrará la versión mínima de esquema compatible.
GetMap
const PropertyInfo * GetMap( PropertyPathHandle aHandle ) const
Muestra un puntero a la estructura PropertyInfo que describe un identificador de ruta de acceso en particular.
Detalles | |||
---|---|---|---|
Valores de retorno |
|
GetMaxVersion
SchemaVersion GetMaxVersion() const
GetMinVersion
SchemaVersion GetMinVersion() const
GetNextChild
PropertyPathHandle GetNextChild( PropertyPathHandle aParentId, PropertyPathHandle aChildHandle ) const
Dado un identificador de un elemento secundario existente, muestra el siguiente identificador de elemento secundario asociado con un elemento superior en particular.
Detalles | |||
---|---|---|---|
Valores de retorno |
|
GetParent
PropertyPathHandle GetParent( PropertyPathHandle aHandle ) const
Muestra el controlador superior de un determinado controlador de ruta de acceso secundario.
Las claves del diccionario en el controlador se conservan en caso de que el controlador principal también sea un elemento del diccionario.
Detalles | |||
---|---|---|---|
Valores de retorno |
|
GetProfileId
uint32_t GetProfileId( void ) const
Devuelve el ID de perfil del atributo asociado.
Detalles | |||
---|---|---|---|
Valores de retorno |
|
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 |
|
||||||||
Resultado que se muestra |
WEAVE_NO_ERROR en caso de éxito; WEAVE_ERROR_NO_MEMORY si aTags es demasiado pequeño para almacenar la ruta de acceso completa.
|
GetTag
uint64_t GetTag( PropertyPathHandle aHandle ) const
Muestra la etiqueta asociada con un identificador de ruta.
Si es un elemento de diccionario, esta función muestra ProfileTag. De lo contrario, muestra etiquetas de contexto.
Detalles | |||
---|---|---|---|
Valores de retorno |
|
GetVersionIntersection
bool GetVersionIntersection( SchemaVersionRange & aVersion, SchemaVersionRange & aIntersection ) const
Dada un rango de versiones, esta función verifica si hay una intersección de compatibilidad entre eso y lo que admite el esquema que respalda este motor de esquemas.
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
Muestra verdadero si el identificador es un diccionario (y no está en un diccionario; consulta el método a continuación).
Detalles | |||
---|---|---|---|
Valores de retorno |
|
IsEphemeral
bool IsEphemeral( PropertyPathHandle aHandle ) const
IsInDictionary
bool IsInDictionary( PropertyPathHandle aHandle, PropertyPathHandle & aDictionaryItemHandle ) const
Muestra true si el controlador está dentro de un diccionario (un elemento del diccionario).
Un usuario que se transfiere (aDictionaryItemHandle) se actualiza para que apunte al controlador de elemento superior del diccionario dentro del diccionario.
Detalles | |||
---|---|---|---|
Valores de retorno |
|
IsLeaf
bool IsLeaf( PropertyPathHandle aPropertyHandle ) const
Muestra verdadero si el identificador hace referencia a un nodo hoja en el árbol de esquemas.
Detalles | |||
---|---|---|---|
Valores de retorno |
|
IsNullable
bool IsNullable( PropertyPathHandle aHandle ) const
IsOptional
bool IsOptional( PropertyPathHandle aHandle ) const
IsParent
bool IsParent( PropertyPathHandle aChildHandle, PropertyPathHandle aParentHandle ) const
Verifica si un identificador determinado es un elemento secundario de otro identificador.
Puede ser un elemento superior indirecto.
Detalles | |||
---|---|---|---|
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
Con un lector ubicado en la raíz de un elemento de ruta de acceso de WDM, lee las etiquetas relevantes y proporciona el controlador de ruta de acceso equivalente.
Detalles | |||||
---|---|---|---|---|---|
Valores de retorno |
|
MapPathToHandle
WEAVE_ERROR MapPathToHandle( const char *aPathString, PropertyPathHandle & aHandle ) const
Dada una representación de cadena de una ruta de acceso de WDM, lee las etiquetas relevantes y proporciona el identificador de ruta de acceso equivalente.
La ruta de acceso de WDM se representa como una cadena con las siguientes reglas:
- las etiquetas se separan con
/
- La ruta DEBE comenzar con un
/
inicial y NO DEBE contener una barra final. - Las etiquetas numéricas en la ruta de acceso de WDM DEBEN codificarse con la biblioteca C estándar para la codificación de números enteros a cadenas, 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
inicial.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Valores de retorno |
|
MatchesProfileId
bool MatchesProfileId( uint32_t aProfileId ) const
Muestra verdadero si el profileId pasado coincide con el almacenado en el esquema.
Detalles | |||
---|---|---|---|
Valores de retorno |
|
RetrieveData
WEAVE_ERROR RetrieveData( PropertyPathHandle aHandle, uint64_t aTagToWrite, nl::Weave::TLV::TLVWriter & aWriter, IGetDataDelegate *aDelegate, IDirtyPathCut *apDirtyPathCut ) const
Dado un identificador de ruta de acceso y una posición de escritor en el elemento de datos correspondiente, recupera los datos de hoja de la fuente y escríbelos en el búfer al que apunta el escritor de una manera compatible con el esquema.
Detalles | |||||
---|---|---|---|---|---|
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
Dado un identificador de ruta de acceso y un lector posicionado 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 de retorno |
|