nl:: Weave:: Profiles:: DataManagement_Current:: TraitSchemaEngine
#include <src/lib/profiles/data-management/Current/TraitData.h>
Mesin skema mengambil informasi skema yang terkait dengan karakteristik tertentu dan menyediakan fasilitas untuk mengurai dan menerjemahkannya ke dalam bentuk yang dapat digunakan oleh mesin WDM.
Ringkasan
Hal ini mencakup mengonversi dari PathHandles ke jalur WDM (dan sebaliknya), metode untuk menafsirkan/melakukan kueri skema itu sendiri, dan metode untuk membantu membaca/menulis data ke/dari TLV yang diberikan nama sebutan channel.
Skema itu sendiri disimpan dalam bentuk tabel, yang dijelaskan secara memadai untuk memungkinkan penguraian/komposisi generik jalur/data WDM untuk setiap karakteristik tertentu. Tabel ini yang akan menjadi output akhir dari 'code-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
|
Dengan dua tuas properti, hitung tuas terendah yang berfungsi sebagai induk untuk kedua tuas ini.
|
GetChildHandle(PropertyPathHandle aParentHandle, uint8_t aContextTag) const
|
|
GetDepth(PropertyPathHandle aHandle) const
|
int32_t
Hitung kedalaman di hierarki skema untuk handle tertentu.
|
GetDictionaryItemHandle(PropertyPathHandle aParentHandle, uint16_t aDictionaryKey) const
|
|
GetFirstChild(PropertyPathHandle aParentHandle) const
|
Menampilkan handle turunan pertama yang terkait dengan induk tertentu.
|
GetHighestForwardVersion(SchemaVersion aVersion) const
|
SchemaVersion
Dengan mempertimbangkan versi skema data yang disediakan, opsi ini akan menampilkan versi skema paling tinggi yang kompatibel dengan versi baru.
|
GetLowestCompatibleVersion(SchemaVersion aVersion) const
|
SchemaVersion
Dengan mempertimbangkan versi skema data yang disediakan, versi ini akan menampilkan versi skema minimum yang kompatibel.
|
GetMap(PropertyPathHandle aHandle) const
|
const PropertyInfo *
Menampilkan pointer ke struktur PropertyInfo yang menjelaskan handle jalur tertentu.
|
GetMaxVersion() const
|
SchemaVersion
|
GetMinVersion() const
|
SchemaVersion
|
GetNextChild(PropertyPathHandle aParentId, PropertyPathHandle aChildHandle) const
|
Mengingat handle untuk turunan yang ada, menampilkan handle turunan berikutnya yang terkait dengan induk tertentu.
|
GetParent(PropertyPathHandle aHandle) const
|
Menampilkan handle induk dari handle jalur turunan tertentu.
|
GetProfileId(void) const
|
uint32_t
Menampilkan ID profil dari karakteristik terkait.
|
GetRelativePathTags(const PropertyPathHandle aCandidateHandle, uint64_t *aTags, const uint32_t aTagsSize, uint32_t & aNumTags) const
|
Mengonversi PropertyPathHandle ke array tag konteks.
|
GetTag(PropertyPathHandle aHandle) const
|
uint64_t
Menampilkan tag yang terkait dengan tuas jalur.
|
GetVersionIntersection(SchemaVersionRange & aVersion, SchemaVersionRange & aIntersection) const
|
bool
Dengan mempertimbangkan rentang versi, fungsi ini memeriksa apakah ada perpotongan kompatibilitas antara versi tersebut dan apa yang didukung oleh skema yang mendukung mesin skema ini.
|
IsDictionary(PropertyPathHandle aHandle) const
|
bool
Menampilkan true (benar) jika handle adalah kamus (dan bukan dalam kamus - lihat metode di bawah).
|
IsEphemeral(PropertyPathHandle aHandle) const
|
bool
|
IsInDictionary(PropertyPathHandle aHandle, PropertyPathHandle & aDictionaryItemHandle) const
|
bool
Menampilkan true (benar) jika handle berada di dalam kamus (elemen kamus).
|
IsLeaf(PropertyPathHandle aPropertyHandle) const
|
bool
Menampilkan true (benar) jika handle merujuk pada node daun di hierarki skema.
|
IsNullable(PropertyPathHandle aHandle) const
|
bool
|
IsOptional(PropertyPathHandle aHandle) const
|
bool
|
IsParent(PropertyPathHandle aChildHandle, PropertyPathHandle aParentHandle) const
|
bool
Memeriksa apakah nama sebutan channel yang diberikan adalah turunan dari nama sebutan channel lain.
|
MapHandleToPath(PropertyPathHandle aHandle, nl::Weave::TLV::TLVWriter & aPathWriter) const
|
Konversikan handle jalur ke jalur TLV.
|
MapPathToHandle(nl::Weave::TLV::TLVReader & aPathReader, PropertyPathHandle & aHandle) const
|
Dengan pembaca yang diposisikan di root elemen jalur WDM, bacakan tag yang relevan dan berikan handle jalur yang setara.
|
MapPathToHandle(const char *aPathString, PropertyPathHandle & aHandle) const
|
Mengingat representasi string dari jalur WDM, membaca tag yang relevan dan memberikan handle jalur yang setara.
|
MatchesProfileId(uint32_t aProfileId) const
|
bool
Menampilkan true (benar) jika ID profil yang diteruskan cocok dengan yang tersimpan dalam skema.
|
RetrieveData(PropertyPathHandle aHandle, uint64_t aTagToWrite, nl::Weave::TLV::TLVWriter & aWriter, IGetDataDelegate *aDelegate, IDirtyPathCut *apDirtyPathCut) const
|
Dengan mempertimbangkan handle jalur dan posisi penulis pada elemen data yang sesuai, ambil data leaf dari sumber dan tuliskan ke dalam buffer yang ditunjuk oleh penulis dengan cara yang sesuai dengan 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
|
Dengan mempertimbangkan handle jalur dan pembaca yang diposisikan pada elemen data yang sesuai, proses buffer data yang ditunjuk oleh pembaca dan simpan ke dalam sink dengan memanggil panggilan SetLeafData setiap kali item data leaf ditemukan.
|
Class |
|
---|---|
nl:: |
|
nl:: |
Struct |
|
---|---|
nl:: |
|
nl:: |
Struktur skema utama yang menampung informasi skema. |
Atribut statis publik
kHandleTableOffset
const uint32_t kHandleTableOffset = 2
Atribut publik
mSchema
const Schema mSchema
Fungsi publik
FindLowestCommonAncestor
PropertyPathHandle FindLowestCommonAncestor( PropertyPathHandle aHandle1, PropertyPathHandle aHandle2, PropertyPathHandle *aHandle1BranchChild, PropertyPathHandle *aHandle2BranchChild ) const
Dengan dua tuas properti, hitung tuas terendah yang berfungsi sebagai induk untuk kedua tuas ini.
Selain itu, tampilkan dua cabang turunan yang berisi masing-masing dari kedua tuas (meskipun jika sama).
Detail | |||
---|---|---|---|
Nilai yang Ditampilkan |
|
GetChildHandle
PropertyPathHandle GetChildHandle( PropertyPathHandle aParentHandle, uint8_t aContextTag ) const
GetDepth
int32_t GetDepth( PropertyPathHandle aHandle ) const
Hitung kedalaman di hierarki skema untuk handle tertentu.
Detail | |||
---|---|---|---|
Nilai yang Ditampilkan |
|
GetDictionaryItemHandle
PropertyPathHandle GetDictionaryItemHandle( PropertyPathHandle aParentHandle, uint16_t aDictionaryKey ) const
GetFirstChild
PropertyPathHandle GetFirstChild( PropertyPathHandle aParentHandle ) const
Menampilkan handle turunan pertama yang terkait dengan induk tertentu.
Detail | |||
---|---|---|---|
Nilai yang Ditampilkan |
|
GetHighestForwardVersion
SchemaVersion GetHighestForwardVersion( SchemaVersion aVersion ) const
Dengan mempertimbangkan versi skema data yang disediakan, opsi ini akan menampilkan versi skema paling tinggi yang kompatibel dengan versi baru.
GetLowestCompatibleVersion
SchemaVersion GetLowestCompatibleVersion( SchemaVersion aVersion ) const
Dengan mempertimbangkan versi skema data yang disediakan, versi ini akan menampilkan versi skema minimum yang kompatibel.
GetMap
const PropertyInfo * GetMap( PropertyPathHandle aHandle ) const
Menampilkan pointer ke struktur PropertyInfo yang menjelaskan handle jalur tertentu.
Detail | |||
---|---|---|---|
Nilai yang Ditampilkan |
|
GetMaxVersion
SchemaVersion GetMaxVersion() const
GetMinVersion
SchemaVersion GetMinVersion() const
GetNextChild
PropertyPathHandle GetNextChild( PropertyPathHandle aParentId, PropertyPathHandle aChildHandle ) const
Dengan mempertimbangkan handle untuk turunan yang ada, menampilkan handle turunan berikutnya yang terkait dengan induk tertentu.
Detail | |||
---|---|---|---|
Nilai yang Ditampilkan |
|
GetParent
PropertyPathHandle GetParent( PropertyPathHandle aHandle ) const
Menampilkan handle induk dari handle jalur turunan tertentu.
Kunci kamus di nama sebutan channel dipertahankan jika nama sebutan channel induk juga merupakan elemen kamus.
Detail | |||
---|---|---|---|
Nilai yang Ditampilkan |
|
GetProfileId
uint32_t GetProfileId( void ) const
Menampilkan ID profil dari karakteristik terkait.
Detail | |||
---|---|---|---|
Nilai yang Ditampilkan |
|
GetRelativePathTags
WEAVE_ERROR GetRelativePathTags( const PropertyPathHandle aCandidateHandle, uint64_t *aTags, const uint32_t aTagsSize, uint32_t & aNumTags ) const
Mengonversi PropertyPathHandle ke array tag konteks.
Detail | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||
Hasil |
WEAVE_NO_ERROR jika berhasil; WEAVE_ERROR_NO_MEMORY jika Tag terlalu kecil untuk menyimpan jalur lengkap.
|
GetTag
uint64_t GetTag( PropertyPathHandle aHandle ) const
Menampilkan tag yang terkait dengan tuas jalur.
Jika adalah elemen kamus, fungsi ini akan menampilkan ProfileTag. Jika tidak, sistem akan menampilkan tag konteks.
Detail | |||
---|---|---|---|
Nilai yang Ditampilkan |
|
GetVersionIntersection
bool GetVersionIntersection( SchemaVersionRange & aVersion, SchemaVersionRange & aIntersection ) const
Dengan mempertimbangkan rentang versi, fungsi ini memeriksa apakah ada perpotongan kompatibilitas antara versi tersebut dan apa yang didukung oleh skema yang mendukung mesin skema ini.
Jika ada persimpangan, fungsi akan menampilkan benar dan memperbarui argumen aIntersection yang diteruskan untuk mencerminkan hasil pengujian persimpangan tersebut.
IsDictionary
bool IsDictionary( PropertyPathHandle aHandle ) const
Menampilkan true (benar) jika handle adalah kamus (dan bukan dalam kamus - lihat metode di bawah).
Detail | |||
---|---|---|---|
Nilai yang Ditampilkan |
|
IsEphemeral
bool IsEphemeral( PropertyPathHandle aHandle ) const
IsInDictionary
bool IsInDictionary( PropertyPathHandle aHandle, PropertyPathHandle & aDictionaryItemHandle ) const
Menampilkan true (benar) jika handle berada di dalam kamus (elemen kamus).
Pengguna yang diteruskan ke nama sebutan channel (aDictionaryItemHandle) akan diperbarui agar mengarah ke nama sebutan channel kamus paling atas dalam kamus.
Detail | |||
---|---|---|---|
Nilai yang Ditampilkan |
|
IsLeaf
bool IsLeaf( PropertyPathHandle aPropertyHandle ) const
Menampilkan true (benar) jika handle merujuk pada node daun di hierarki skema.
Detail | |||
---|---|---|---|
Nilai yang Ditampilkan |
|
IsNullable
bool IsNullable( PropertyPathHandle aHandle ) const
IsOptional
bool IsOptional( PropertyPathHandle aHandle ) const
IsParent
bool IsParent( PropertyPathHandle aChildHandle, PropertyPathHandle aParentHandle ) const
Memeriksa apakah nama sebutan channel yang diberikan adalah turunan dari nama sebutan channel lain.
Ini bisa berupa induk tidak langsung.
Detail | |||
---|---|---|---|
Nilai yang Ditampilkan |
|
MapHandleToPath
WEAVE_ERROR MapHandleToPath( PropertyPathHandle aHandle, nl::Weave::TLV::TLVWriter & aPathWriter ) const
MapPathToHandle
WEAVE_ERROR MapPathToHandle( nl::Weave::TLV::TLVReader & aPathReader, PropertyPathHandle & aHandle ) const
Dengan pembaca yang diposisikan di root elemen jalur WDM, bacakan tag yang relevan dan berikan handle jalur yang setara.
Detail | |||||
---|---|---|---|---|---|
Nilai yang Ditampilkan |
|
MapPathToHandle
WEAVE_ERROR MapPathToHandle( const char *aPathString, PropertyPathHandle & aHandle ) const
Mengingat representasi string dari jalur WDM, membaca tag yang relevan dan memberikan handle jalur yang setara.
Jalur WDM direpresentasikan sebagai string menggunakan aturan berikut:
- tag dipisahkan dengan
/
- jalur HARUS dimulai dengan
/
di awal dan TIDAK BOLEH berisi garis miring - tag numerik di jalur WDM HARUS dienkode menggunakan library C standar untuk encoding bilangan bulat ke string, yaitu encoding desimal (default) TIDAK BOLEH berisi awalan 0, encoding heksadesimal HARUS dimulai dengan
0x
, dan encoding oktal HARUS berisi awal0
.
Detail | |||||||
---|---|---|---|---|---|---|---|
Nilai yang Ditampilkan |
|
MatchesProfileId
bool MatchesProfileId( uint32_t aProfileId ) const
Menampilkan true (benar) jika ID profil yang diteruskan cocok dengan yang tersimpan dalam skema.
Detail | |||
---|---|---|---|
Nilai yang Ditampilkan |
|
RetrieveData
WEAVE_ERROR RetrieveData( PropertyPathHandle aHandle, uint64_t aTagToWrite, nl::Weave::TLV::TLVWriter & aWriter, IGetDataDelegate *aDelegate, IDirtyPathCut *apDirtyPathCut ) const
Dengan mempertimbangkan handle jalur dan posisi penulis pada elemen data yang sesuai, ambil data leaf dari sumber dan tuliskan ke dalam buffer yang ditunjuk oleh penulis dengan cara yang sesuai dengan skema.
Detail | |||||
---|---|---|---|---|---|
Nilai yang Ditampilkan |
|
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
Dengan mempertimbangkan handle jalur dan pembaca yang diposisikan pada elemen data yang sesuai, proses buffer data yang ditunjuk oleh pembaca dan simpan ke dalam sink dengan memanggil panggilan SetLeafData setiap kali item data leaf ditemukan.
Detail | |||||
---|---|---|---|---|---|
Nilai yang Ditampilkan |
|