nl:: Menenun:: Profil:: DataManagement_Current:: SifatSkemaMesin
#include <src/lib/profiles/data-management/Current/TraitData.h>
Mesin skema mengambil informasi skema yang terkait dengan sifat tertentu dan menyediakan fasilitas untuk menguraikan dan menerjemahkannya ke dalam bentuk yang dapat digunakan oleh mesin WDM.
Ringkasan
Ini termasuk mengkonversi dari PathHandles ke jalur WDM (dan sebaliknya), metode untuk menafsirkan / query skema itu sendiri dan metode untuk membantu membaca / menulis data ke / dari TLV diberikan pegangan.
Skema itu sendiri disimpan dalam bentuk tabel, cukup dijelaskan untuk memungkinkan penguraian/komposisi jalur/data WDM umum untuk setiap sifat yang diberikan. Tabel-tabel ini adalah apa yang akan menjadi keluaran akhir dari 'kode-gen' (Istilah itu sendiri agak menyesatkan mengingat tidak adanya kode yang dihasilkan: P)
Atribut statis publik | |
---|---|
kHandleTableOffset = 2 | const uint32_t |
Atribut publik | |
---|---|
mSchema | const Schema |
Fungsi publik | |
---|---|
FindLowestCommonAncestor ( PropertyPathHandle aHandle1, PropertyPathHandle aHandle2, PropertyPathHandle *aHandle1BranchChild, PropertyPathHandle *aHandle2BranchChild) const | Diberikan dua pegangan properti, hitung pegangan terendah yang berfungsi sebagai induk dari kedua pegangan ini. |
GetChildHandle ( PropertyPathHandle aParentHandle, uint8_t aContextTag) const | |
GetDepth ( PropertyPathHandle aHandle) const | int32_t Hitung kedalaman di pohon skema untuk pegangan yang diberikan. |
GetDictionaryItemHandle ( PropertyPathHandle aParentHandle, uint16_t aDictionaryKey) const | |
GetFirstChild ( PropertyPathHandle aParentHandle) const | Mengembalikan pegangan anak pertama yang terkait dengan induk tertentu. |
GetHighestForwardVersion (SchemaVersion aVersion) const | SchemaVersion Diberikan versi skema data yang disediakan, ini akan mengembalikan versi skema tertinggi yang kompatibel ke depan. |
GetLowestCompatibleVersion (SchemaVersion aVersion) const | SchemaVersion Mengingat versi skema data yang disediakan, ini akan mengembalikan versi skema minimum yang kompatibel. |
GetMap ( PropertyPathHandle aHandle) const | const PropertyInfo * Mengembalikan pointer ke PropertyInfo struktur menggambarkan pegangan jalan tertentu. |
GetMaxVersion () const | SchemaVersion |
GetMinVersion () const | SchemaVersion |
GetNextChild ( PropertyPathHandle aParentId, PropertyPathHandle aChildHandle) const | Diberikan pegangan ke anak yang ada, mengembalikan pegangan anak berikutnya yang terkait dengan induk tertentu. |
GetParent ( PropertyPathHandle aHandle) const | Mengembalikan pegangan induk dari pegangan jalur anak yang diberikan. |
GetProfileId (void) const | uint32_t Mengembalikan id profil dari sifat terkait. |
GetRelativePathTags (const PropertyPathHandle aCandidateHandle, uint64_t *aTags, const uint32_t aTagsSize, uint32_t & aNumTags) const | Mengonversi PropertyPathHandle ke larik tag konteks. |
GetTag ( PropertyPathHandle aHandle) const | uint64_t Mengembalikan tag yang terkait dengan pegangan jalur. |
GetVersionIntersection ( SchemaVersionRange & aVersion, SchemaVersionRange & aIntersection) const | bool Mengingat rentang versi, fungsi ini memeriksa untuk melihat apakah ada persimpangan kompatibilitas antara itu dan apa yang didukung oleh skema yang mendukung mesin skema ini. |
IsDictionary ( PropertyPathHandle aHandle) const | bool Mengembalikan nilai true jika pegangannya adalah kamus (dan bukan dalam kamus - lihat metode di bawah). |
IsEphemeral ( PropertyPathHandle aHandle) const | bool |
IsInDictionary ( PropertyPathHandle aHandle, PropertyPathHandle & aDictionaryItemHandle) const | bool Pengembalian benar jika pegangan di dalam kamus (elemen kamus). |
IsLeaf ( PropertyPathHandle aPropertyHandle) const | bool Mengembalikan nilai true jika pegangan merujuk ke simpul daun di pohon skema. |
IsNullable ( PropertyPathHandle aHandle) const | bool |
IsOptional ( PropertyPathHandle aHandle) const | bool |
IsParent ( PropertyPathHandle aChildHandle, PropertyPathHandle aParentHandle) const | bool Memeriksa apakah pegangan yang diberikan adalah anak dari pegangan lain. |
MapHandleToPath ( PropertyPathHandle aHandle,nl::Weave::TLV::TLVWriter & aPathWriter) const | Mengkonversi pegangan jalan ke TLV jalan. |
MapPathToHandle (nl::Weave::TLV::TLVReader & aPathReader, PropertyPathHandle & aHandle) const | Mengingat pembaca diposisikan di akar elemen jalur WDM, bacakan tag yang relevan dan berikan pegangan jalur yang setara. |
MapPathToHandle (const char *aPathString, PropertyPathHandle & aHandle) const | Mengingat representasi string dari jalur WDM, bacakan tag yang relevan dan berikan pegangan jalur yang setara. |
MatchesProfileId (uint32_t aProfileId) const | bool Mengembalikan nilai true jika yang diteruskan di profileId cocok dengan yang disimpan dalam skema. |
RetrieveData ( PropertyPathHandle aHandle, uint64_t aTagToWrite,nl::Weave::TLV::TLVWriter & aWriter, IGetDataDelegate *aDelegate, IDirtyPathCut *apDirtyPathCut) const | Diberikan pegangan jalur dan posisi penulis pada elemen data yang sesuai, ambil data daun dari sumber dan tulis ke dalam buffer yang ditunjuk oleh penulis dengan cara yang sesuai skema. |
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 | Diberikan pegangan jalur dan pembaca yang diposisikan pada elemen data yang sesuai, proses buffer data yang ditunjuk oleh pembaca dan simpan ke dalam sink dengan menjalankan panggilan SetLeafData setiap kali item data daun ditemukan. |
Kelas | |
---|---|
nl :: Weave :: Profil :: DataManagement_Current :: TraitSchemaEngine :: IGetDataDelegate | |
nl :: Weave :: Profil :: DataManagement_Current :: TraitSchemaEngine :: ISetDataDelegate |
Struktur | |
---|---|
nl :: Weave :: Profil :: DataManagement_Current :: TraitSchemaEngine :: PropertyInfo | |
nl :: Weave :: Profil :: DataManagement_Current :: TraitSchemaEngine :: Skema | Struktur skema utama yang menampung informasi skema. |
Atribut statis publik
kHandleTableOffset
const uint32_t kHandleTableOffset = 2
Atribut publik
mSchema
const Schema mSchema
Fungsi publik
TemukanLeluhur UmumTerendah
PropertyPathHandle FindLowestCommonAncestor( PropertyPathHandle aHandle1, PropertyPathHandle aHandle2, PropertyPathHandle *aHandle1BranchChild, PropertyPathHandle *aHandle2BranchChild ) const
Diberikan dua pegangan properti, hitung pegangan terendah yang berfungsi sebagai induk dari kedua pegangan ini.
Selain itu, kembalikan dua cabang anak yang berisi masing-masing dari dua pegangan (meskipun keduanya sama).
rincian | |||
---|---|---|---|
Mengembalikan Nilai |
|
DapatkanPegangan Anak
PropertyPathHandle GetChildHandle( PropertyPathHandle aParentHandle, uint8_t aContextTag ) const
Dapatkan Kedalaman
int32_t GetDepth( PropertyPathHandle aHandle ) const
Hitung kedalaman di pohon skema untuk pegangan yang diberikan.
rincian | |||
---|---|---|---|
Mengembalikan Nilai |
|
DapatkanDictionaryItemHandle
PropertyPathHandle GetDictionaryItemHandle( PropertyPathHandle aParentHandle, uint16_t aDictionaryKey ) const
DapatkanAnak Pertama
PropertyPathHandle GetFirstChild( PropertyPathHandle aParentHandle ) const
Mengembalikan pegangan anak pertama yang terkait dengan induk tertentu.
rincian | |||
---|---|---|---|
Mengembalikan Nilai |
|
GetHighestForwardVersion
SchemaVersion GetHighestForwardVersion( SchemaVersion aVersion ) const
Diberikan versi skema data yang disediakan, ini akan mengembalikan versi skema tertinggi yang kompatibel ke depan.
DapatkanVersiKompatibelTerrendah
SchemaVersion GetLowestCompatibleVersion( SchemaVersion aVersion ) const
Mengingat versi skema data yang disediakan, ini akan mengembalikan versi skema minimum yang kompatibel.
DapatkanPeta
const PropertyInfo * GetMap( PropertyPathHandle aHandle ) const
Mengembalikan pointer ke PropertyInfo struktur menggambarkan pegangan jalan tertentu.
rincian | |||
---|---|---|---|
Mengembalikan Nilai |
|
DapatkanMaxVersion
SchemaVersion GetMaxVersion() const
DapatkanMinVersion
SchemaVersion GetMinVersion() const
DapatkanNextChild
PropertyPathHandle GetNextChild( PropertyPathHandle aParentId, PropertyPathHandle aChildHandle ) const
Diberikan pegangan ke anak yang ada, mengembalikan pegangan anak berikutnya yang terkait dengan induk tertentu.
rincian | |||
---|---|---|---|
Mengembalikan Nilai |
|
DapatkanOrang Tua
PropertyPathHandle GetParent( PropertyPathHandle aHandle ) const
Mengembalikan pegangan induk dari pegangan jalur anak yang diberikan.
Kunci kamus di pegangan dipertahankan dalam kasus di mana pegangan induk juga merupakan elemen kamus.
rincian | |||
---|---|---|---|
Mengembalikan Nilai |
|
DapatkanIdProfil
uint32_t GetProfileId( void ) const
Mengembalikan id profil dari sifat terkait.
rincian | |||
---|---|---|---|
Mengembalikan Nilai |
|
DapatkanRelativePathTag
WEAVE_ERROR GetRelativePathTags( const PropertyPathHandle aCandidateHandle, uint64_t *aTags, const uint32_t aTagsSize, uint32_t & aNumTags ) const
Mengonversi PropertyPathHandle ke larik tag konteks.
rincian | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parameter |
| ||||||||
Kembali | WEAVE_NO_ERROR jika berhasil; WEAVE_ERROR_NO_MEMORY jika aTags terlalu kecil untuk menyimpan path lengkap. |
DapatkanTag
uint64_t GetTag( PropertyPathHandle aHandle ) const
Mengembalikan tag yang terkait dengan pegangan jalur.
Jika ini adalah elemen kamus, fungsi ini mengembalikan ProfileTag. Jika tidak, ia mengembalikan tag konteks.
rincian | |||
---|---|---|---|
Mengembalikan Nilai |
|
GetVersionIntersection
bool GetVersionIntersection( SchemaVersionRange & aVersion, SchemaVersionRange & aIntersection ) const
Mengingat rentang versi, fungsi ini memeriksa untuk melihat apakah ada persimpangan kompatibilitas antara itu dan apa yang didukung oleh skema yang mendukung mesin skema ini.
Jika ada persimpangan, fungsi akan mengembalikan nilai true dan memperbarui argumen aIntersection yang diteruskan untuk mencerminkan hasil pengujian persimpangan tersebut.
adalah kamus
bool IsDictionary( PropertyPathHandle aHandle ) const
Mengembalikan nilai true jika pegangannya adalah kamus (dan bukan dalam kamus - lihat metode di bawah).
rincian | |||
---|---|---|---|
Mengembalikan Nilai |
|
AdalahEphemeral
bool IsEphemeral( PropertyPathHandle aHandle ) const
ApakahDalamKamus
bool IsInDictionary( PropertyPathHandle aHandle, PropertyPathHandle & aDictionaryItemHandle ) const
Pengembalian benar jika pegangan di dalam kamus (elemen kamus).
Pengguna yang diteruskan di pegangan (aDictionaryItemHandle) diperbarui untuk menunjuk ke pegangan elemen kamus paling atas dalam kamus.
rincian | |||
---|---|---|---|
Mengembalikan Nilai |
|
IsLeaf
bool IsLeaf( PropertyPathHandle aPropertyHandle ) const
Mengembalikan nilai true jika pegangan merujuk ke simpul daun di pohon skema.
rincian | |||
---|---|---|---|
Mengembalikan Nilai |
|
Tidak dapat dibatalkan
bool IsNullable( PropertyPathHandle aHandle ) const
IsOpsional
bool IsOptional( PropertyPathHandle aHandle ) const
Adalah Orang Tua
bool IsParent( PropertyPathHandle aChildHandle, PropertyPathHandle aParentHandle ) const
Memeriksa apakah pegangan yang diberikan adalah anak dari pegangan lain.
Ini bisa menjadi orang tua tidak langsung.
rincian | |||
---|---|---|---|
Mengembalikan Nilai |
|
PetaMenanganiToPath
WEAVE_ERROR MapHandleToPath( PropertyPathHandle aHandle, nl::Weave::TLV::TLVWriter & aPathWriter ) const
PetaJalanUntukMenangani
WEAVE_ERROR MapPathToHandle( nl::Weave::TLV::TLVReader & aPathReader, PropertyPathHandle & aHandle ) const
Mengingat pembaca diposisikan di akar elemen jalur WDM, bacakan tag yang relevan dan berikan pegangan jalur yang setara.
rincian | |||||
---|---|---|---|---|---|
Mengembalikan Nilai |
|
PetaJalanUntukMenangani
WEAVE_ERROR MapPathToHandle( const char *aPathString, PropertyPathHandle & aHandle ) const
Mengingat representasi string dari jalur WDM, bacakan tag yang relevan dan berikan pegangan jalur yang setara.
Jalur WDM direpresentasikan sebagai string menggunakan aturan berikut:
- tag dipisahkan dengan
/
- jalan HARUS dimulai dengan terkemuka
/
dan TIDAK HARUS berisi garis miring tertinggal - tag numerik di jalur WDM HARUS dikodekan menggunakan C perpustakaan standar untuk integer string encoding, yaitu desimal pengkodean (default) HARUS TIDAK mengandung awalan 0, pengkodean heksadesimal HARUS dimulai dengan
0x
, dan encoding oktal HARUS berisi terkemuka0
.
rincian | |||||||
---|---|---|---|---|---|---|---|
Mengembalikan Nilai |
|
KecocokanProfilId
bool MatchesProfileId( uint32_t aProfileId ) const
Mengembalikan nilai true jika yang diteruskan di profileId cocok dengan yang disimpan dalam skema.
rincian | |||
---|---|---|---|
Mengembalikan Nilai |
|
Ambil Data
WEAVE_ERROR RetrieveData( PropertyPathHandle aHandle, uint64_t aTagToWrite, nl::Weave::TLV::TLVWriter & aWriter, IGetDataDelegate *aDelegate, IDirtyPathCut *apDirtyPathCut ) const
Diberikan pegangan jalur dan posisi penulis pada elemen data yang sesuai, ambil data daun dari sumber dan tulis ke dalam buffer yang ditunjuk oleh penulis dengan cara yang sesuai dengan skema.
rincian | |||||
---|---|---|---|---|---|
Mengembalikan Nilai |
|
RetrieveUpdatableDictionaryData
WEAVE_ERROR RetrieveUpdatableDictionaryData( PropertyPathHandle aHandle, uint64_t aTagToWrite, nl::Weave::TLV::TLVWriter & aWriter, IGetDataDelegate *aDelegate, PropertyPathHandle & aPropertyPathHandleOfDictItemToStartFrom ) const
Menyimpan data
WEAVE_ERROR StoreData( PropertyPathHandle aHandle, nl::Weave::TLV::TLVReader & aReader, ISetDataDelegate *aDelegate, IPathFilter *aPathFilter ) const
Diberikan pegangan jalur dan pembaca yang diposisikan pada elemen data yang sesuai, proses buffer data yang ditunjuk oleh pembaca dan simpan ke dalam sink dengan menjalankan panggilan SetLeafData setiap kali item data daun ditemukan.
rincian | |||||
---|---|---|---|---|---|
Mengembalikan Nilai |
|