nl:: Weave:: Profiles:: DataManagement_Current:: TraitSchemaEngine
#include <src/lib/profiles/data-management/Current/TraitData.h>
Il motore schema acquisisce le informazioni sullo schema associate a un determinato tratto e fornisce strutture per analizzarle e tradurle in un modulo utilizzabile dal macchinario WDM.
Riepilogo
Ciò include la conversione da PathHandles a percorsi WDM (e viceversa), metodi per interpretare/eseguire query sullo schema stesso e metodi per aiutare a leggere/scrivere dati da/verso TLV a cui è stato assegnato un handle.
Lo schema stesso è archiviato in forma tabulare, sufficientemente descritto per consentire l'analisi/composizione generica di percorsi/dati WDM per qualsiasi tratto dato. Queste tabelle sono l'output finale di "code-gen" Il termine è piuttosto fuorviante data l'assenza di codice generato :P.
Attributi statici pubblici |
|
---|---|
kHandleTableOffset = 2
|
const uint32_t
|
Attributi pubblici |
|
---|---|
mSchema
|
const Schema
|
Funzioni pubbliche |
|
---|---|
FindLowestCommonAncestor(PropertyPathHandle aHandle1, PropertyPathHandle aHandle2, PropertyPathHandle *aHandle1BranchChild, PropertyPathHandle *aHandle2BranchChild) const
|
Dati due handle della proprietà, calcola l'handle più basso che funge da principale per entrambi.
|
GetChildHandle(PropertyPathHandle aParentHandle, uint8_t aContextTag) const
|
|
GetDepth(PropertyPathHandle aHandle) const
|
int32_t
Calcola la profondità nella struttura ad albero dello schema per un determinato handle.
|
GetDictionaryItemHandle(PropertyPathHandle aParentHandle, uint16_t aDictionaryKey) const
|
|
GetFirstChild(PropertyPathHandle aParentHandle) const
|
Restituisce il primo handle secondario associato a un particolare handle.
|
GetHighestForwardVersion(SchemaVersion aVersion) const
|
SchemaVersion
Se viene fornita una versione dello schema dei dati, verrà restituita la versione dello schema compatibile con le versioni più recenti.
|
GetLowestCompatibleVersion(SchemaVersion aVersion) const
|
SchemaVersion
Se viene fornita una versione dello schema dei dati, verrà restituita la versione minima dello schema compatibile.
|
GetMap(PropertyPathHandle aHandle) const
|
const PropertyInfo *
Restituisce un puntatore alla struttura PropertyInfo che descrive un determinato handle del percorso.
|
GetMaxVersion() const
|
SchemaVersion
|
GetMinVersion() const
|
SchemaVersion
|
GetNextChild(PropertyPathHandle aParentId, PropertyPathHandle aChildHandle) const
|
Se viene fornito un handle a un account secondario esistente, restituisce l'handle successivo associato a un determinato account principale.
|
GetParent(PropertyPathHandle aHandle) const
|
Restituisce l'handle principale di un determinato handle del percorso figlio.
|
GetProfileId(void) const
|
uint32_t
Restituisce l'ID profilo del trait associato.
|
GetRelativePathTags(const PropertyPathHandle aCandidateHandle, uint64_t *aTags, const uint32_t aTagsSize, uint32_t & aNumTags) const
|
Converte un PropertyPathHandle in un array di tag di contesto.
|
GetTag(PropertyPathHandle aHandle) const
|
uint64_t
Restituisce il tag associato a un handle del percorso.
|
GetVersionIntersection(SchemaVersionRange & aVersion, SchemaVersionRange & aIntersection) const
|
bool
Dato un intervallo di versioni, questa funzione controlla se esiste un'intersezione di compatibilità tra questo e ciò che è supportato dallo schema che supporta questo motore dello schema.
|
IsDictionary(PropertyPathHandle aHandle) const
|
bool
Restituisce true se l'handle è un dizionario (e non in un dizionario; vedi il metodo di seguito).
|
IsEphemeral(PropertyPathHandle aHandle) const
|
bool
|
IsInDictionary(PropertyPathHandle aHandle, PropertyPathHandle & aDictionaryItemHandle) const
|
bool
Restituisce true se l'handle si trova all'interno di un dizionario (un elemento del dizionario).
|
IsLeaf(PropertyPathHandle aPropertyHandle) const
|
bool
Restituisce true se l'handle si riferisce a un nodo foglia nella struttura ad albero dello schema.
|
IsNullable(PropertyPathHandle aHandle) const
|
bool
|
IsOptional(PropertyPathHandle aHandle) const
|
bool
|
IsParent(PropertyPathHandle aChildHandle, PropertyPathHandle aParentHandle) const
|
bool
Controlla se un determinato handle è figlio di un altro handle.
|
MapHandleToPath(PropertyPathHandle aHandle, nl::Weave::TLV::TLVWriter & aPathWriter) const
|
Converti l'handle del percorso in un percorso TLV.
|
MapPathToHandle(nl::Weave::TLV::TLVReader & aPathReader, PropertyPathHandle & aHandle) const
|
Dato un lettore posizionato alla radice di un elemento di percorso WDM, leggi i tag pertinenti e fornisci l'handle del percorso equivalente.
|
MapPathToHandle(const char *aPathString, PropertyPathHandle & aHandle) const
|
Data la rappresentazione in formato stringa di un percorso WDM, legge ad alta voce i tag pertinenti e fornisce l'handle equivalente del percorso.
|
MatchesProfileId(uint32_t aProfileId) const
|
bool
Restituisce true se il valore passato nel profileId corrisponde a quello memorizzato nello schema.
|
RetrieveData(PropertyPathHandle aHandle, uint64_t aTagToWrite, nl::Weave::TLV::TLVWriter & aWriter, IGetDataDelegate *aDelegate, IDirtyPathCut *apDirtyPathCut) const
|
Dati un handle di percorso e una posizione del writer sull'elemento di dati corrispondente, recupera i dati foglia dall'origine e scrivili nel buffer a cui punta il writer in modo conforme allo schema.
|
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
|
Dati un handle di percorso e un lettore posizionato sull'elemento di dati corrispondente, elabora il buffer di dati a cui punta il lettore e lo archivia nel sink richiamando la chiamata SetLeafData ogni volta che viene rilevato un elemento di dati foglia.
|
Corsi |
|
---|---|
nl:: |
|
nl:: |
Structs |
|
---|---|
nl:: |
|
nl:: |
La struttura principale dello schema che contiene le informazioni sullo schema. |
Attributi statici pubblici
kHandleTableOffset
const uint32_t kHandleTableOffset = 2
Attributi pubblici
mSchema
const Schema mSchema
Funzioni pubbliche
FindLowestCommonAncestor
PropertyPathHandle FindLowestCommonAncestor( PropertyPathHandle aHandle1, PropertyPathHandle aHandle2, PropertyPathHandle *aHandle1BranchChild, PropertyPathHandle *aHandle2BranchChild ) const
Dati due handle della proprietà, calcola l'handle più basso che funge da principale per entrambi.
Inoltre, restituisci i due rami secondari che contengono ciascuno dei due handle (anche se sono gli stessi).
Dettagli | |||
---|---|---|---|
Valori restituiti |
|
GetChildHandle
PropertyPathHandle GetChildHandle( PropertyPathHandle aParentHandle, uint8_t aContextTag ) const
GetDepth
int32_t GetDepth( PropertyPathHandle aHandle ) const
Calcola la profondità nella struttura ad albero dello schema per un determinato handle.
Dettagli | |||
---|---|---|---|
Valori restituiti |
|
GetDictionaryItemHandle
PropertyPathHandle GetDictionaryItemHandle( PropertyPathHandle aParentHandle, uint16_t aDictionaryKey ) const
GetFirstChild
PropertyPathHandle GetFirstChild( PropertyPathHandle aParentHandle ) const
Restituisce il primo handle secondario associato a un particolare handle.
Dettagli | |||
---|---|---|---|
Valori restituiti |
|
GetHighestForwardVersion
SchemaVersion GetHighestForwardVersion( SchemaVersion aVersion ) const
Se viene fornita una versione dello schema dei dati, verrà restituita la versione dello schema compatibile con le versioni più recenti.
GetLowestCompatibleVersion
SchemaVersion GetLowestCompatibleVersion( SchemaVersion aVersion ) const
Se viene fornita una versione dello schema dei dati, verrà restituita la versione minima dello schema compatibile.
GetMap
const PropertyInfo * GetMap( PropertyPathHandle aHandle ) const
Restituisce un puntatore alla struttura PropertyInfo che descrive un determinato handle del percorso.
Dettagli | |||
---|---|---|---|
Valori restituiti |
|
GetMaxVersion
SchemaVersion GetMaxVersion() const
GetMinVersion
SchemaVersion GetMinVersion() const
GetNextChild
PropertyPathHandle GetNextChild( PropertyPathHandle aParentId, PropertyPathHandle aChildHandle ) const
Se viene fornito un handle a un account secondario esistente, restituisce l'handle successivo associato a un determinato account principale.
Dettagli | |||
---|---|---|---|
Valori restituiti |
|
GetParent
PropertyPathHandle GetParent( PropertyPathHandle aHandle ) const
Restituisce l'handle principale di un determinato handle del percorso figlio.
Le chiavi del dizionario nell'handle vengono conservate nel caso in cui anche l'handle principale sia un elemento del dizionario.
Dettagli | |||
---|---|---|---|
Valori restituiti |
|
GetProfileId
uint32_t GetProfileId( void ) const
Restituisce l'ID profilo del trait associato.
Dettagli | |||
---|---|---|---|
Valori restituiti |
|
GetRelativePathTags
WEAVE_ERROR GetRelativePathTags( const PropertyPathHandle aCandidateHandle, uint64_t *aTags, const uint32_t aTagsSize, uint32_t & aNumTags ) const
Converte un PropertyPathHandle in un array di tag di contesto.
Dettagli | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametri |
|
||||||||
Restituisce |
WEAVE_NO_ERROR in caso di esito positivo; WEAVE_ERROR_NO_MEMORY se aTag è troppo piccolo per archiviare il percorso completo.
|
GetTag
uint64_t GetTag( PropertyPathHandle aHandle ) const
Restituisce il tag associato a un handle del percorso.
Se è un elemento del dizionario, questa funzione restituisce il ProfileTag. In caso contrario, restituisce i tag di contesto.
Dettagli | |||
---|---|---|---|
Valori restituiti |
|
GetVersionIntersection
bool GetVersionIntersection( SchemaVersionRange & aVersion, SchemaVersionRange & aIntersection ) const
Dato un intervallo di versioni, questa funzione controlla se esiste un'intersezione di compatibilità tra questo e ciò che è supportato dallo schema che supporta questo motore dello schema.
Se c'è un'intersezione, la funzione restituisce true e aggiorna l'argomento aIntersection passato in modo da riflettere i risultati del test dell'intersezione.
IsDictionary
bool IsDictionary( PropertyPathHandle aHandle ) const
Restituisce true se l'handle è un dizionario (e non in un dizionario; vedi il metodo di seguito).
Dettagli | |||
---|---|---|---|
Valori restituiti |
|
IsEphemeral
bool IsEphemeral( PropertyPathHandle aHandle ) const
IsInDictionary
bool IsInDictionary( PropertyPathHandle aHandle, PropertyPathHandle & aDictionaryItemHandle ) const
Restituisce true se l'handle si trova all'interno di un dizionario (un elemento del dizionario).
Un utente passato nell'handle (aDictionaryItemHandle) viene aggiornato in modo che punti all'handle dell'elemento del dizionario più in alto all'interno del dizionario.
Dettagli | |||
---|---|---|---|
Valori restituiti |
|
IsLeaf
bool IsLeaf( PropertyPathHandle aPropertyHandle ) const
Restituisce true se l'handle si riferisce a un nodo foglia nella struttura ad albero dello schema.
Dettagli | |||
---|---|---|---|
Valori restituiti |
|
IsNullable
bool IsNullable( PropertyPathHandle aHandle ) const
IsOptional
bool IsOptional( PropertyPathHandle aHandle ) const
IsParent
bool IsParent( PropertyPathHandle aChildHandle, PropertyPathHandle aParentHandle ) const
Controlla se un determinato handle è figlio di un altro handle.
Può essere un account principale indiretto.
Dettagli | |||
---|---|---|---|
Valori restituiti |
|
MapHandleToPath
WEAVE_ERROR MapHandleToPath( PropertyPathHandle aHandle, nl::Weave::TLV::TLVWriter & aPathWriter ) const
MapPathToHandle
WEAVE_ERROR MapPathToHandle( nl::Weave::TLV::TLVReader & aPathReader, PropertyPathHandle & aHandle ) const
Dato un lettore posizionato alla radice di un elemento di percorso WDM, leggi i tag pertinenti e fornisci l'handle del percorso equivalente.
Dettagli | |||||
---|---|---|---|---|---|
Valori restituiti |
|
MapPathToHandle
WEAVE_ERROR MapPathToHandle( const char *aPathString, PropertyPathHandle & aHandle ) const
Data la rappresentazione in formato stringa di un percorso WDM, legge ad alta voce i tag pertinenti e fornisce l'handle equivalente del percorso.
Il percorso WDM è rappresentato come una stringa utilizzando le seguenti regole:
- i tag sono separati da
/
- il percorso DEVE iniziare con un
/
iniziale e NON DEVE contenere una barra finale - i tag numerici nel percorso WDM DEVONO essere codificati utilizzando la libreria C standard per la codifica da numero intero a stringa, ossia la codifica decimale (predefinita) NON DEVE contenere uno 0 iniziale, una codifica esadecimale DEVE iniziare con
0x
e la codifica ottale DEVE contenere un carattere0
iniziale.
Dettagli | |||||||
---|---|---|---|---|---|---|---|
Valori restituiti |
|
MatchesProfileId
bool MatchesProfileId( uint32_t aProfileId ) const
Restituisce true se il valore di profileId passato in profileId corrisponde a quello memorizzato nello schema.
Dettagli | |||
---|---|---|---|
Valori restituiti |
|
RetrieveData
WEAVE_ERROR RetrieveData( PropertyPathHandle aHandle, uint64_t aTagToWrite, nl::Weave::TLV::TLVWriter & aWriter, IGetDataDelegate *aDelegate, IDirtyPathCut *apDirtyPathCut ) const
Dati un handle di percorso e una posizione del writer sull'elemento di dati corrispondente, recupera i dati foglia dall'origine e scrivili nel buffer a cui punta il writer in modo conforme allo schema.
Dettagli | |||||
---|---|---|---|---|---|
Valori restituiti |
|
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
Dati un handle di percorso e un lettore posizionato sull'elemento di dati corrispondente, elabora il buffer di dati a cui punta il lettore e lo archivia nel sink richiamando la chiamata SetLeafData ogni volta che viene rilevato un elemento di dati foglia.
Dettagli | |||||
---|---|---|---|---|---|
Valori restituiti |
|