nl:: Weave:: Profiles:: DataManagement_Current:: TraitSchemaEngine
#include <src/lib/profiles/data-management/Current/TraitData.h>
Le moteur de schéma extrait les informations de schéma associées à une caractéristique particulière et fournit des installations pour les analyser et les traduire dans un format utilisable par les machines WDM.
Résumé
Cela inclut la conversion de PathHandles en chemins WDM (et inversement), des méthodes permettant d'interpréter/d'interroger le schéma lui-même et des méthodes permettant de lire/d'écrire des données vers/à partir de TLV à partir d'un handle.
Le schéma lui-même est stocké sous forme tabulaire, suffisamment décrit pour permettre une analyse/composition générique des chemins/données WDM pour toute caractéristique donnée. Ces tables constituent le résultat final de "code-gen" (le terme lui-même étant quelque peu trompeur étant donné l'absence de code généré :P).
Attributs statiques publics |
|
---|---|
kHandleTableOffset = 2
|
const uint32_t
|
Attributs publics |
|
---|---|
mSchema
|
const Schema
|
Fonctions publiques |
|
---|---|
FindLowestCommonAncestor(PropertyPathHandle aHandle1, PropertyPathHandle aHandle2, PropertyPathHandle *aHandle1BranchChild, PropertyPathHandle *aHandle2BranchChild) const
|
Étant donné les deux identifiants de propriété, calculez le handle le plus bas qui servira de parent à ces deux identifiants.
|
GetChildHandle(PropertyPathHandle aParentHandle, uint8_t aContextTag) const
|
|
GetDepth(PropertyPathHandle aHandle) const
|
int32_t
Calculez la profondeur dans l'arborescence de schéma pour un handle donné.
|
GetDictionaryItemHandle(PropertyPathHandle aParentHandle, uint16_t aDictionaryKey) const
|
|
GetFirstChild(PropertyPathHandle aParentHandle) const
|
Renvoie le premier handle enfant associé à un parent particulier.
|
GetHighestForwardVersion(SchemaVersion aVersion) const
|
SchemaVersion
Pour une version de schéma de données fournie, la version de schéma la plus compatible est renvoyée.
|
GetLowestCompatibleVersion(SchemaVersion aVersion) const
|
SchemaVersion
Cette méthode renvoie la version minimale compatible du schéma de données fourni.
|
GetMap(PropertyPathHandle aHandle) const
|
const PropertyInfo *
Renvoie un pointeur vers la structure PropertyInfo décrivant un gestionnaire de chemin d'accès particulier.
|
GetMaxVersion() const
|
SchemaVersion
|
GetMinVersion() const
|
SchemaVersion
|
GetNextChild(PropertyPathHandle aParentId, PropertyPathHandle aChildHandle) const
|
Avec un handle fourni à un enfant existant, renvoie le handle enfant suivant associé à un parent particulier.
|
GetParent(PropertyPathHandle aHandle) const
|
Renvoie le handle parent d'un handle de chemin d'accès enfant donné.
|
GetProfileId(void) const
|
uint32_t
Renvoie l'ID de profil de la caractéristique associée.
|
GetRelativePathTags(const PropertyPathHandle aCandidateHandle, uint64_t *aTags, const uint32_t aTagsSize, uint32_t & aNumTags) const
|
Convertit un PropertyPathHandle en tableau de balises de contexte.
|
GetTag(PropertyPathHandle aHandle) const
|
uint64_t
Renvoie la balise associée à un handle de chemin d'accès.
|
GetVersionIntersection(SchemaVersionRange & aVersion, SchemaVersionRange & aIntersection) const
|
bool
Pour une plage de versions donnée, cette fonction vérifie s'il existe une intersection de compatibilité entre celle-ci et ce qui est compatible avec le schéma qui sauvegarde ce moteur de schéma.
|
IsDictionary(PropertyPathHandle aHandle) const
|
bool
Renvoie la valeur "true" si le handle est un dictionnaire (et non dans un dictionnaire, voir la méthode ci-dessous).
|
IsEphemeral(PropertyPathHandle aHandle) const
|
bool
|
IsInDictionary(PropertyPathHandle aHandle, PropertyPathHandle & aDictionaryItemHandle) const
|
bool
Renvoie la valeur "true" si la poignée se trouve à l'intérieur d'un dictionnaire (un élément de dictionnaire).
|
IsLeaf(PropertyPathHandle aPropertyHandle) const
|
bool
Renvoie la valeur "true" si le handle fait référence à un nœud de feuille dans l'arborescence du schéma.
|
IsNullable(PropertyPathHandle aHandle) const
|
bool
|
IsOptional(PropertyPathHandle aHandle) const
|
bool
|
IsParent(PropertyPathHandle aChildHandle, PropertyPathHandle aParentHandle) const
|
bool
Vérifie si un identifiant donné est un enfant d'un autre identifiant.
|
MapHandleToPath(PropertyPathHandle aHandle, nl::Weave::TLV::TLVWriter & aPathWriter) const
|
Convertissez la poignée de chemin d'accès en chemin TLV.
|
MapPathToHandle(nl::Weave::TLV::TLVReader & aPathReader, PropertyPathHandle & aHandle) const
|
Étant donné un lecteur positionné à la racine d'un élément de chemin d'accès WDM, lisez les balises pertinentes et fournissez le handle de chemin d'accès équivalent.
|
MapPathToHandle(const char *aPathString, PropertyPathHandle & aHandle) const
|
À partir d'une représentation de chaîne d'un chemin WDM, lisez les balises pertinentes et fournissez le gestionnaire de chemin d'accès équivalent.
|
MatchesProfileId(uint32_t aProfileId) const
|
bool
Renvoie la valeur "true" si le profileId transmis correspond à celui stocké dans le schéma.
|
RetrieveData(PropertyPathHandle aHandle, uint64_t aTagToWrite, nl::Weave::TLV::TLVWriter & aWriter, IGetDataDelegate *aDelegate, IDirtyPathCut *apDirtyPathCut) const
|
À partir d'un handle de chemin d'accès et d'une position de rédacteur sur l'élément de données correspondant, récupérez les données feuilles de la source et écrivez-les dans le tampon vers lequel pointe le rédacteur, de manière conforme au schéma.
|
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
|
À partir d'un handle de chemin d'accès et d'un lecteur placé sur l'élément de données correspondant, traitez le tampon de données indiqué par le lecteur et stockez-le dans le récepteur en appelant l'appel SetLeafData chaque fois qu'un élément de données feuille est rencontré.
|
Classes |
|
---|---|
nl:: |
|
nl:: |
Structs |
|
---|---|
nl:: |
|
nl:: |
Structure du schéma principale qui héberge les informations du schéma. |
Attributs statiques publics
kHandleTableOffset
const uint32_t kHandleTableOffset = 2
Attributs publics
mSchema
const Schema mSchema
Fonctions publiques
FindLowestCommonAncestor
PropertyPathHandle FindLowestCommonAncestor( PropertyPathHandle aHandle1, PropertyPathHandle aHandle2, PropertyPathHandle *aHandle1BranchChild, PropertyPathHandle *aHandle2BranchChild ) const
Étant donné les deux identifiants de propriété, calculez le handle le plus bas qui servira de parent à ces deux identifiants.
De plus, renvoyez les deux branches enfants contenant chacune des deux poignées (même si elles sont identiques).
Détails | |||
---|---|---|---|
Valeurs renvoyées |
|
GetChildHandle
PropertyPathHandle GetChildHandle( PropertyPathHandle aParentHandle, uint8_t aContextTag ) const
GetDepth
int32_t GetDepth( PropertyPathHandle aHandle ) const
Calculez la profondeur dans l'arborescence du schéma pour un handle donné.
Détails | |||
---|---|---|---|
Valeurs renvoyées |
|
GetDictionaryItemHandle
PropertyPathHandle GetDictionaryItemHandle( PropertyPathHandle aParentHandle, uint16_t aDictionaryKey ) const
GetFirstChild
PropertyPathHandle GetFirstChild( PropertyPathHandle aParentHandle ) const
Renvoie le premier handle enfant associé à un parent particulier.
Détails | |||
---|---|---|---|
Valeurs renvoyées |
|
GetHighestForwardVersion
SchemaVersion GetHighestForwardVersion( SchemaVersion aVersion ) const
Pour une version de schéma de données fournie, cette méthode renvoie la version de schéma la plus compatible avec les versions ultérieures.
GetLowestCompatibleVersion
SchemaVersion GetLowestCompatibleVersion( SchemaVersion aVersion ) const
Cette méthode renvoie la version minimale compatible du schéma de données fournie.
GetMap
const PropertyInfo * GetMap( PropertyPathHandle aHandle ) const
Renvoie un pointeur vers la structure PropertyInfo décrivant un handle de chemin particulier.
Détails | |||
---|---|---|---|
Valeurs renvoyées |
|
GetMaxVersion
SchemaVersion GetMaxVersion() const
GetMinVersion
SchemaVersion GetMinVersion() const
GetNextChild
PropertyPathHandle GetNextChild( PropertyPathHandle aParentId, PropertyPathHandle aChildHandle ) const
Avec un handle fourni à un enfant existant, renvoie le handle enfant suivant associé à un parent particulier.
Détails | |||
---|---|---|---|
Valeurs renvoyées |
|
GetParent
PropertyPathHandle GetParent( PropertyPathHandle aHandle ) const
Renvoie le conteneur parent d'un conteneur de chemin d'accès enfant donné.
Les clés du dictionnaire dans la poignée sont conservées si le handle parent est également un élément du dictionnaire.
Détails | |||
---|---|---|---|
Valeurs renvoyées |
|
GetProfileId
uint32_t GetProfileId( void ) const
Renvoie l'ID de profil de la caractéristique associée.
Détails | |||
---|---|---|---|
Valeurs renvoyées |
|
GetRelativePathTags
WEAVE_ERROR GetRelativePathTags( const PropertyPathHandle aCandidateHandle, uint64_t *aTags, const uint32_t aTagsSize, uint32_t & aNumTags ) const
Convertit un PropertyPathHandle en un tableau de balises de contexte.
Détails | |||||||||
---|---|---|---|---|---|---|---|---|---|
Paramètres |
|
||||||||
Renvoie |
WEAVE_NO_ERROR en cas de réussite ; WEAVE_ERROR_NO_MEMORY si aTags est trop petit pour stocker le chemin d'accès complet.
|
GetTag
uint64_t GetTag( PropertyPathHandle aHandle ) const
Renvoie la balise associée à un gestionnaire de chemin d'accès.
S'il s'agit d'un élément de dictionnaire, cette fonction renvoie la ProfileTag. Sinon, il renvoie des balises de contexte.
Détails | |||
---|---|---|---|
Valeurs renvoyées |
|
GetVersionIntersection
bool GetVersionIntersection( SchemaVersionRange & aVersion, SchemaVersionRange & aIntersection ) const
Cette fonction vérifie, pour une plage de versions donnée, s'il existe une intersection de compatibilité entre celle-ci et ce qui est compatible avec le schéma qui sous-tend ce moteur de schéma.
S'il existe une intersection, la fonction renvoie la valeur "true" et met à jour l'argument aIntersection transmis pour refléter les résultats du test d'intersection.
IsDictionary
bool IsDictionary( PropertyPathHandle aHandle ) const
Renvoie la valeur "true" si le handle est un dictionnaire (et non dans un dictionnaire, voir la méthode ci-dessous).
Détails | |||
---|---|---|---|
Valeurs renvoyées |
|
IsEphemeral
bool IsEphemeral( PropertyPathHandle aHandle ) const
IsInDictionary
bool IsInDictionary( PropertyPathHandle aHandle, PropertyPathHandle & aDictionaryItemHandle ) const
Renvoie la valeur "true" si la poignée se trouve à l'intérieur d'un dictionnaire (un élément de dictionnaire).
Un utilisateur transmis dans l'identifiant (aDictionaryItemHandle) est mis à jour pour pointer vers le handle d'élément de dictionnaire le plus élevé dans le dictionnaire.
Détails | |||
---|---|---|---|
Valeurs renvoyées |
|
IsLeaf
bool IsLeaf( PropertyPathHandle aPropertyHandle ) const
Renvoie la valeur "true" si le handle fait référence à un nœud feuille dans l'arborescence du schéma.
Détails | |||
---|---|---|---|
Valeurs renvoyées |
|
IsNullable
bool IsNullable( PropertyPathHandle aHandle ) const
IsOptional
bool IsOptional( PropertyPathHandle aHandle ) const
IsParent
bool IsParent( PropertyPathHandle aChildHandle, PropertyPathHandle aParentHandle ) const
Vérifie si un identifiant donné est un enfant d'un autre identifiant.
Il peut s'agir d'un parent indirect.
Détails | |||
---|---|---|---|
Valeurs renvoyées |
|
MapHandleToPath
WEAVE_ERROR MapHandleToPath( PropertyPathHandle aHandle, nl::Weave::TLV::TLVWriter & aPathWriter ) const
MapPathToHandle
WEAVE_ERROR MapPathToHandle( nl::Weave::TLV::TLVReader & aPathReader, PropertyPathHandle & aHandle ) const
Étant donné un lecteur positionné à la racine d'un élément de chemin d'accès WDM, lisez les balises pertinentes et fournissez le gestionnaire de chemin d'accès équivalent.
Détails | |||||
---|---|---|---|---|---|
Valeurs renvoyées |
|
MapPathToHandle
WEAVE_ERROR MapPathToHandle( const char *aPathString, PropertyPathHandle & aHandle ) const
À partir d'une représentation de chaîne d'un chemin WDM, lisez les balises pertinentes et fournissez le gestionnaire de chemin d'accès équivalent.
Le chemin WDM est représenté sous forme de chaîne en appliquant les règles suivantes :
- Les tags sont séparés par
/
. - le chemin DOIT commencer par un
/
de début et NE DOIT PAS contenir de barre oblique finale - Les tags numériques du chemin WDM DOIVENT être encodés à l'aide de la bibliothèque C standard pour l'encodage entier en chaîne, c'est-à-dire que l'encodage décimal (par défaut) NE DOIT PAS contenir de zéro au début, un encodage hexadécimal DOIT commencer par
0x
et l'encodage octal DOIT contenir un0
au début.
Détails | |||||||
---|---|---|---|---|---|---|---|
Valeurs renvoyées |
|
MatchesProfileId
bool MatchesProfileId( uint32_t aProfileId ) const
Renvoie la valeur "true" si l'ID profilId transmis correspond à celui stocké dans le schéma.
Détails | |||
---|---|---|---|
Valeurs renvoyées |
|
RetrieveData
WEAVE_ERROR RetrieveData( PropertyPathHandle aHandle, uint64_t aTagToWrite, nl::Weave::TLV::TLVWriter & aWriter, IGetDataDelegate *aDelegate, IDirtyPathCut *apDirtyPathCut ) const
Étant donné un gestionnaire de chemin d'accès et une position d'écriture sur l'élément de données correspondant, récupérez les données de feuille de la source et écrivez-les dans le tampon pointé par l'écrivain de manière conforme au schéma.
Détails | |||||
---|---|---|---|---|---|
Valeurs renvoyées |
|
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
À partir d'un handle de chemin d'accès et d'un lecteur placé sur l'élément de données correspondant, traitez le tampon de données indiqué par le lecteur et stockez-le dans le récepteur en appelant l'appel SetLeafData chaque fois qu'un élément de données feuille est rencontré.
Détails | |||||
---|---|---|---|---|---|
Valeurs renvoyées |
|