nl:: Weave:: Profiles:: DataManagement_Current:: TraitSchemaEngine
#include <src/lib/profiles/data-management/Current/TraitData.h>
Silnik schematu pobiera informacje schematu powiązane z określonymi cechami i zapewnia mechanizmy analizowania i przekształcania ich w postać przydatną dla mechanizmu WDM.
Podsumowanie
Obejmuje to konwersję z PathHandles na ścieżki WDM (i odwrotnie), metody interpretowania i wyszukiwania schematu oraz metody pomagające w odczytywaniu i zapisywaniu danych do/z TLV z użyciem uchwytu.
Sam schemat jest przechowywany w formie tabelarycznej, wystarczająco opisanej, aby umożliwić ogólne parsowanie/kompozycję ścieżek/danych WDM dla dowolnej cechy. Te tabele będą ostatecznym wynikiem działania polecenia „code-gen” (samo to określenie jest nieco mylące, ponieważ nie generuje ono żadnego kodu :P).
Publiczne atrybuty statyczne |
|
---|---|
kHandleTableOffset = 2
|
const uint32_t
|
Atrybuty publiczne |
|
---|---|
mSchema
|
const Schema
|
Funkcje publiczne |
|
---|---|
FindLowestCommonAncestor(PropertyPathHandle aHandle1, PropertyPathHandle aHandle2, PropertyPathHandle *aHandle1BranchChild, PropertyPathHandle *aHandle2BranchChild) const
|
Na podstawie 2 identyfikatorów usług oblicz najniższy identyfikator, który jest nadrzędnym dla obu tych identyfikatorów.
|
GetChildHandle(PropertyPathHandle aParentHandle, uint8_t aContextTag) const
|
|
GetDepth(PropertyPathHandle aHandle) const
|
int32_t
Oblicz głębokość w drzewie schematu dla danego identyfikatora.
|
GetDictionaryItemHandle(PropertyPathHandle aParentHandle, uint16_t aDictionaryKey) const
|
|
GetFirstChild(PropertyPathHandle aParentHandle) const
|
Zwraca pierwszy identyfikator podrzędny powiązany z określonym identyfikatorem nadrzędnym.
|
GetHighestForwardVersion(SchemaVersion aVersion) const
|
SchemaVersion
Na podstawie podanej wersji schematu danych zwraca najwyższą wersję schematu zgodną wstecz.
|
GetLowestCompatibleVersion(SchemaVersion aVersion) const
|
SchemaVersion
Zwraca minimalną zgodną wersję schematu danych.
|
GetMap(PropertyPathHandle aHandle) const
|
const PropertyInfo *
Zwraca wskaźnik do struktury PropertyInfo opisującej konkretny uchwyt ścieżki.
|
GetMaxVersion() const
|
SchemaVersion
|
GetMinVersion() const
|
SchemaVersion
|
GetNextChild(PropertyPathHandle aParentId, PropertyPathHandle aChildHandle) const
|
Na podstawie identyfikatora istniejącego elementu podrzędnego zwraca następny identyfikator elementu podrzędnego powiązany z danym elementem nadrzędnym.
|
GetParent(PropertyPathHandle aHandle) const
|
Zwraca element nadrzędny danego elementu podrzędnego ścieżki.
|
GetProfileId(void) const
|
uint32_t
Zwraca identyfikator profilu powiązanego z właściwością.
|
GetRelativePathTags(const PropertyPathHandle aCandidateHandle, uint64_t *aTags, const uint32_t aTagsSize, uint32_t & aNumTags) const
|
Konwertuje parametr PropertyPathHandle na tablicę tagów kontekstowych.
|
GetTag(PropertyPathHandle aHandle) const
|
uint64_t
Zwraca tag powiązany z uchwytem ścieżki.
|
GetVersionIntersection(SchemaVersionRange & aVersion, SchemaVersionRange & aIntersection) const
|
bool
Funkcja sprawdza, czy podany zakres wersji jest zgodny z wersją obsługiwaną przez mechanizm obsługiwany przez ten mechanizm.
|
IsDictionary(PropertyPathHandle aHandle) const
|
bool
Zwraca wartość „prawda”, jeśli uchwyt jest słownikiem (i nie znajduje się w słowniku – patrz metoda poniżej).
|
IsEphemeral(PropertyPathHandle aHandle) const
|
bool
|
IsInDictionary(PropertyPathHandle aHandle, PropertyPathHandle & aDictionaryItemHandle) const
|
bool
Zwraca wartość „PRAWDA”, jeśli uchwyt znajduje się w definicji słownika (elementu słownika).
|
IsLeaf(PropertyPathHandle aPropertyHandle) const
|
bool
Zwraca wartość „True” (Prawda), jeśli identyfikator odnosi się do węzła końcowego w drzewie schematu.
|
IsNullable(PropertyPathHandle aHandle) const
|
bool
|
IsOptional(PropertyPathHandle aHandle) const
|
bool
|
IsParent(PropertyPathHandle aChildHandle, PropertyPathHandle aParentHandle) const
|
bool
Sprawdza, czy dany nick jest elementem podrzędnym innego nicka.
|
MapHandleToPath(PropertyPathHandle aHandle, nl::Weave::TLV::TLVWriter & aPathWriter) const
|
Przekształć uchwyt ścieżki na ścieżkę TLV.
|
MapPathToHandle(nl::Weave::TLV::TLVReader & aPathReader, PropertyPathHandle & aHandle) const
|
Czytnik znajduje się w korzenia elementu ścieżki WDM. Czytnik odczytuje odpowiednie tagi i przekaże odpowiedni identyfikator ścieżki.
|
MapPathToHandle(const char *aPathString, PropertyPathHandle & aHandle) const
|
Na podstawie ciągu znaków reprezentującego ścieżkę WDM odczytuje odpowiednie tagi i podaje odpowiedni identyfikator ścieżki.
|
MatchesProfileId(uint32_t aProfileId) const
|
bool
Zwraca wartość „prawda”, jeśli przekazany identyfikator profilu jest zgodny z zapisanym w schemacie.
|
RetrieveData(PropertyPathHandle aHandle, uint64_t aTagToWrite, nl::Weave::TLV::TLVWriter & aWriter, IGetDataDelegate *aDelegate, IDirtyPathCut *apDirtyPathCut) const
|
Mając uchwyt ścieżki i pozycję zapisującego w odpowiednim elemencie danych, pobierz dane liści ze źródła i zapisz je w buforze wskazanym przez autora w sposób zgodny ze schematem.
|
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
|
Gdy masz uchwyt ścieżki i czytnik umieszczony na odpowiednim elemencie danych, przetwórz bufor danych wskazywany przez czytnik i zapisz go w zbiorniku, wywołując wywołanie SetLeafData, gdy tylko napotkasz element danych liścia.
|
Zajęcia |
|
---|---|
nl:: |
|
nl:: |
Struktury |
|
---|---|
nl:: |
|
nl:: |
Główna struktura schematu, która zawiera informacje o schemacie. |
Publiczne atrybuty statyczne
kHandleTableOffset
const uint32_t kHandleTableOffset = 2
Atrybuty publiczne
mSchema
const Schema mSchema
Funkcje publiczne
FindLowestCommonAncestor
PropertyPathHandle FindLowestCommonAncestor( PropertyPathHandle aHandle1, PropertyPathHandle aHandle2, PropertyPathHandle *aHandle1BranchChild, PropertyPathHandle *aHandle2BranchChild ) const
Na podstawie 2 identyfikatorów usług oblicz identyfikator najniższych właściwości, który jest elementem nadrzędnym dla obu tych identyfikatorów.
Dodatkowo zwraca 2 gałęzie podrzędne, które zawierają po jednym z 2 identyfikatorów (nawet jeśli są one takie same).
Szczegóły | |||
---|---|---|---|
Zwracane wartości |
|
GetChildHandle
PropertyPathHandle GetChildHandle( PropertyPathHandle aParentHandle, uint8_t aContextTag ) const
GetDepth
int32_t GetDepth( PropertyPathHandle aHandle ) const
Oblicz głębokość w drzewie schematu dla danego identyfikatora.
Szczegóły | |||
---|---|---|---|
Zwracane wartości |
|
GetDictionaryItemHandle
PropertyPathHandle GetDictionaryItemHandle( PropertyPathHandle aParentHandle, uint16_t aDictionaryKey ) const
GetFirstChild
PropertyPathHandle GetFirstChild( PropertyPathHandle aParentHandle ) const
Zwraca pierwszy identyfikator podrzędny powiązany z określonym identyfikatorem nadrzędnym.
Szczegóły | |||
---|---|---|---|
Zwracane wartości |
|
GetHighestForwardVersion
SchemaVersion GetHighestForwardVersion( SchemaVersion aVersion ) const
Na podstawie podanej wersji schematu danych zwraca najwyższą wersję schematu zgodną wstecz.
GetLowestCompatibleVersion
SchemaVersion GetLowestCompatibleVersion( SchemaVersion aVersion ) const
Dla podanej wersji schematu danych ta funkcja zwróci minimalną zgodną wersję schematu.
GetMap
const PropertyInfo * GetMap( PropertyPathHandle aHandle ) const
Zwraca wskaźnik do struktury PropertyInfo opisującej konkretny uchwyt ścieżki.
Szczegóły | |||
---|---|---|---|
Zwracane wartości |
|
GetMaxVersion
SchemaVersion GetMaxVersion() const
GetMinVersion
SchemaVersion GetMinVersion() const
GetNextChild
PropertyPathHandle GetNextChild( PropertyPathHandle aParentId, PropertyPathHandle aChildHandle ) const
Na podstawie identyfikatora istniejącego elementu podrzędnego zwraca następny identyfikator elementu podrzędnego powiązany z danym elementem nadrzędnym.
Szczegóły | |||
---|---|---|---|
Zwracane wartości |
|
GetParent
PropertyPathHandle GetParent( PropertyPathHandle aHandle ) const
Zwraca uchwyt nadrzędny danego uchwytu ścieżki podrzędnej.
Klucze słownika w uchwycie są zachowywane, gdy uchwyt nadrzędny jest też elementem słownika.
Szczegóły | |||
---|---|---|---|
Zwracane wartości |
|
GetProfileId
uint32_t GetProfileId( void ) const
Zwraca identyfikator profilu powiązanego z właściwością.
Szczegóły | |||
---|---|---|---|
Zwracane wartości |
|
GetRelativePathTags
WEAVE_ERROR GetRelativePathTags( const PropertyPathHandle aCandidateHandle, uint64_t *aTags, const uint32_t aTagsSize, uint32_t & aNumTags ) const
Konwertuje parametr PropertyPathHandle na tablicę tagów kontekstowych.
Szczegóły | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametry |
|
||||||||
Zwroty |
WEAVE_NO_ERROR w przypadku powodzenia; WEAVE_ERROR_NO_MEMORY, jeśli aTags jest za mały, aby przechowywać pełną ścieżkę.
|
GetTag
uint64_t GetTag( PropertyPathHandle aHandle ) const
Zwraca tag powiązany z uchwytem ścieżki.
Jeśli jest to element słownika, funkcja zwraca tag profilu. W przeciwnym razie zwraca tagi kontekstu.
Szczegóły | |||
---|---|---|---|
Zwracane wartości |
|
GetVersionIntersection
bool GetVersionIntersection( SchemaVersionRange & aVersion, SchemaVersionRange & aIntersection ) const
Funkcja sprawdza, czy podany zakres wersji jest zgodny z wersją obsługiwaną przez mechanizm obsługiwany przez ten mechanizm.
Jeśli istnieje przecięcie, funkcja zwróci wartość true i zaktualizuje przekazany argument aIntersection, aby odzwierciedlał wyniki testu przecięcia.
IsDictionary
bool IsDictionary( PropertyPathHandle aHandle ) const
Zwraca wartość „prawda”, jeśli nick jest słownikiem (a nie w słowniku – patrz metoda poniżej).
Szczegóły | |||
---|---|---|---|
Zwracane wartości |
|
IsEphemeral
bool IsEphemeral( PropertyPathHandle aHandle ) const
IsInDictionary
bool IsInDictionary( PropertyPathHandle aHandle, PropertyPathHandle & aDictionaryItemHandle ) const
Zwraca wartość „PRAWDA”, jeśli uchwyt znajduje się w definicji słownika (elementu słownika).
Użytkownik przekazywany za pomocą nicka (aDictionaryItemHandle) zostaje zaktualizowany w taki sposób, by wskazywał najwyższy uchwyt elementu słownika w słowniku.
Szczegóły | |||
---|---|---|---|
Zwracane wartości |
|
IsLeaf
bool IsLeaf( PropertyPathHandle aPropertyHandle ) const
Zwraca wartość „True” (Prawda), jeśli identyfikator odnosi się do węzła końcowego w drzewie schematu.
Szczegóły | |||
---|---|---|---|
Zwracane wartości |
|
IsNullable
bool IsNullable( PropertyPathHandle aHandle ) const
IsOptional
bool IsOptional( PropertyPathHandle aHandle ) const
IsParent
bool IsParent( PropertyPathHandle aChildHandle, PropertyPathHandle aParentHandle ) const
Sprawdza, czy dany nick jest podrzędny wobec innego nicka.
Może to być element nadrzędny pośredni.
Szczegóły | |||
---|---|---|---|
Zwracane wartości |
|
MapHandleToPath
WEAVE_ERROR MapHandleToPath( PropertyPathHandle aHandle, nl::Weave::TLV::TLVWriter & aPathWriter ) const
MapPathToHandle
WEAVE_ERROR MapPathToHandle( nl::Weave::TLV::TLVReader & aPathReader, PropertyPathHandle & aHandle ) const
Gdy czytnik znajduje się w korzenia elementu ścieżki WDM, odczytuje odpowiednie tagi i przekaże odpowiedni identyfikator ścieżki.
Szczegóły | |||||
---|---|---|---|---|---|
Zwracane wartości |
|
MapPathToHandle
WEAVE_ERROR MapPathToHandle( const char *aPathString, PropertyPathHandle & aHandle ) const
Na podstawie ciągu znaków reprezentującego ścieżkę WDM odczytaj odpowiednie tagi i podaj odpowiedni identyfikator ścieżki.
Ścieżka WDM jest reprezentowana jako ciąg znaków, który jest interpretowany zgodnie z tymi regułami:
- tagi są rozdzielone znakiem
/
- ścieżka MUSI zaczynać się ukośnikiem
/
i NIE MOŻE zawierać ukośnika końcowego - Tagi liczbowe w ścieżce WDM MUSZĄ być zakodowane za pomocą standardowej biblioteki C do kodowania liczb całkowitych na ciągi znaków, czyli kodowanie dziesiętne (domyślne) NIE MOŻE zawierać wiodącego zera, kodowanie szesnastkowe MUSI zaczynać się od
0x
, a kodowanie oktetowe MUSI zawierać wiodący0
.
Szczegóły | |||||||
---|---|---|---|---|---|---|---|
Zwracane wartości |
|
MatchesProfileId
bool MatchesProfileId( uint32_t aProfileId ) const
Zwraca wartość „true” (prawda), jeśli podany w polu „profileId” odpowiada identyfikatorowi zapisanemu w schemacie.
Szczegóły | |||
---|---|---|---|
Zwracane wartości |
|
RetrieveData
WEAVE_ERROR RetrieveData( PropertyPathHandle aHandle, uint64_t aTagToWrite, nl::Weave::TLV::TLVWriter & aWriter, IGetDataDelegate *aDelegate, IDirtyPathCut *apDirtyPathCut ) const
Mając uchwyt ścieżki i pozycję zapisującego w odpowiednim elemencie danych, pobierz dane liści ze źródła i zapisz je w buforze wskazanym przez autora w sposób zgodny ze schematem.
Szczegóły | |||||
---|---|---|---|---|---|
Zwracane wartości |
|
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
Gdy masz uchwyt ścieżki i czytnik umieszczony na odpowiednim elemencie danych, przetwórz bufor danych wskazywany przez czytnik i zapisz go w zbiorniku, wywołując wywołanie SetLeafData, gdy tylko napotkasz element danych liścia.
Szczegóły | |||||
---|---|---|---|---|---|
Zwracane wartości |
|