nl:: Weave:: โปรไฟล์:: DataManagement_Current:: TraitSchemaEngine
#include <src/lib/profiles/data-management/Current/TraitData.h>
เครื่องมือสคีมาจะนําข้อมูลสคีมาที่เชื่อมโยงกับคุณลักษณะเฉพาะหนึ่งๆ มาใช้ และมอบเครื่องมือในการแยกวิเคราะห์และแปลลงในแบบฟอร์มที่เครื่อง WDM ใช้งานได้
สรุป
ซึ่งรวมถึงการแปลงจากเส้นทาง PathHandles เป็นเส้นทาง WDM (และในทางกลับกัน) วิธีตีความ/ค้นหาสคีมาเองและวิธีการที่จะช่วยให้อ่าน/เขียนข้อมูลไปยัง/จาก TLV ที่ระบุ
สคีมาจะจัดเก็บไว้ในรูปแบบตารางซึ่งอธิบายอย่างเพียงพอเพื่ออนุญาตการแยกวิเคราะห์/องค์ประกอบทั่วไปของเส้นทาง/ข้อมูล WDM สําหรับลักษณะเฉพาะใดๆ ตารางเหล่านี้คือผลลัพธ์สุดท้ายใน 'code-gen' (ตัวคําที่ทําให้เข้าใจผิดเพราะไม่มีโค้ดที่สร้างขึ้น :P)
แอตทริบิวต์สาธารณะแบบคงที่ |
|
---|---|
kHandleTableOffset = 2
|
const uint32_t
|
แอตทริบิวต์สาธารณะ |
|
---|---|
mSchema
|
const Schema
|
ฟังก์ชันสาธารณะ |
|
---|---|
FindLowestCommonAncestor(PropertyPathHandle aHandle1, PropertyPathHandle aHandle2, PropertyPathHandle *aHandle1BranchChild, PropertyPathHandle *aHandle2BranchChild) const
|
จะคํานวณแฮนเดิลที่ต่ําที่สุดซึ่งทําหน้าที่เป็นระดับบนสุดของแฮนเดิลทั้ง 2 รายการนี้ เนื่องจากแฮนเดิลพร็อพเพอร์ตี้ 2 รายการ
|
GetChildHandle(PropertyPathHandle aParentHandle, uint8_t aContextTag) const
|
|
GetDepth(PropertyPathHandle aHandle) const
|
int32_t
คํานวณความลึกในแผนผังสคีมาสําหรับแฮนเดิลที่กําหนด
|
GetDictionaryItemHandle(PropertyPathHandle aParentHandle, uint16_t aDictionaryKey) const
|
|
GetFirstChild(PropertyPathHandle aParentHandle) const
|
แสดงผลแฮนเดิลย่อยแรกที่เชื่อมโยงกับระดับบนสุด
|
GetHighestForwardVersion(SchemaVersion aVersion) const
|
SchemaVersion
เวอร์ชันของสคีมาสคีมาที่ระบุที่ระบุจะส่งคืนเวอร์ชันสคีมาที่เข้ากันได้สูงสุด
|
GetLowestCompatibleVersion(SchemaVersion aVersion) const
|
SchemaVersion
เวอร์ชันของสคีมาสคีมาที่ระบุที่ระบุจะส่งคืนเวอร์ชันสคีมาขั้นต่ําที่เข้ากันได้
|
GetMap(PropertyPathHandle aHandle) const
|
const PropertyInfo *
แสดงผลตัวชี้ไปยังโครงสร้าง PropertyInfo ที่อธิบายแฮนเดิลเส้นทางที่เจาะจง
|
GetMaxVersion() const
|
SchemaVersion
|
GetMinVersion() const
|
SchemaVersion
|
GetNextChild(PropertyPathHandle aParentId, PropertyPathHandle aChildHandle) const
|
แฮนเดิลที่มีการจัดการถัดไปจะส่งคืนแฮนเดิลย่อยถัดไปที่เชื่อมโยงกับบัญชีระดับบนสุดที่เฉพาะเจาะจง
|
GetParent(PropertyPathHandle aHandle) const
|
แสดงผลแฮนเดิลระดับบนสุดของแฮนเดิลเส้นทางย่อยที่ระบุ
|
GetProfileId(void) const
|
uint32_t
แสดงรหัสโปรไฟล์ของลักษณะที่เกี่ยวข้อง
|
GetRelativePathTags(const PropertyPathHandle aCandidateHandle, uint64_t *aTags, const uint32_t aTagsSize, uint32_t & aNumTags) const
|
แปลง PropertyPathHandle เป็นอาร์เรย์ของแท็กบริบท
|
GetTag(PropertyPathHandle aHandle) const
|
uint64_t
แสดงผลแท็กที่เชื่อมโยงกับแฮนเดิลเส้นทาง
|
GetVersionIntersection(SchemaVersionRange & aVersion, SchemaVersionRange & aIntersection) const
|
bool
เพื่อให้มีช่วงฟังก์ชันนี้ ฟังก์ชันนี้จะตรวจสอบว่ามีจุดร่วมระหว่างค่าดังกล่าวหรือไม่ และสคีมาที่อยู่เบื้องหลังเครื่องมือสคีมานี้รองรับมีอะไรบ้าง
|
IsDictionary(PropertyPathHandle aHandle) const
|
bool
ส่งคืนค่า "จริง" หากแฮนเดิลเป็นพจนานุกรม (ไม่ใช่ในพจนานุกรม โปรดดูวิธีการด้านล่าง)
|
IsEphemeral(PropertyPathHandle aHandle) const
|
bool
|
IsInDictionary(PropertyPathHandle aHandle, PropertyPathHandle & aDictionaryItemHandle) const
|
bool
แสดงค่า "จริง" หากแฮนเดิลอยู่ในภายในพจนานุกรม (องค์ประกอบพจนานุกรม)
|
IsLeaf(PropertyPathHandle aPropertyHandle) const
|
bool
แสดงผลเป็น "จริง" หากแฮนเดิลหมายถึงโหนด Leaf ในแผนผังสคีมา
|
IsNullable(PropertyPathHandle aHandle) const
|
bool
|
IsOptional(PropertyPathHandle aHandle) const
|
bool
|
IsParent(PropertyPathHandle aChildHandle, PropertyPathHandle aParentHandle) const
|
bool
ตรวจสอบว่าแฮนเดิลหนึ่งเป็นของแฮนเดิลอื่นหรือไม่
|
MapHandleToPath(PropertyPathHandle aHandle, nl::Weave::TLV::TLVWriter & aPathWriter) const
|
แปลงแฮนเดิลเส้นทางเป็นเส้นทาง TLV
|
MapPathToHandle(nl::Weave::TLV::TLVReader & aPathReader, PropertyPathHandle & aHandle) const
|
ให้อ่านแท็กที่เกี่ยวข้องที่รากขององค์ประกอบเส้นทาง WDM แล้วอ่านแท็กที่เกี่ยวข้องและระบุแฮนเดิลเส้นทางที่เทียบเท่า
|
MapPathToHandle(const char *aPathString, PropertyPathHandle & aHandle) const
|
ในการนําเสนอสตริงสตริงของเส้นทาง WDM ให้อ่านแท็กที่เกี่ยวข้องและระบุแฮนเดิลของเส้นทางที่เทียบเท่า
|
MatchesProfileId(uint32_t aProfileId) const
|
bool
แสดงผลเป็น "จริง" หากการส่งต่อใน profileId ตรงกับที่เก็บไว้ในสคีมา
|
RetrieveData(PropertyPathHandle aHandle, uint64_t aTagToWrite, nl::Weave::TLV::TLVWriter & aWriter, IGetDataDelegate *aDelegate, IDirtyPathCut *apDirtyPathCut) const
|
จากแฮนเดิลเส้นทางและตําแหน่งผู้เขียนในองค์ประกอบข้อมูลที่เกี่ยวข้อง ให้เรียกข้อมูล Leaf จากแหล่งข้อมูล และเขียนลงในบัฟเฟอร์ที่ผู้เขียนชี้ไปที่ในลักษณะที่เป็นไปตามสคีมา
|
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
|
แฮนเดิลแฮนเดิลที่วางอยู่บนองค์ประกอบข้อมูลที่เกี่ยวข้อง ให้ประมวลผลบัฟเฟอร์ข้อมูลที่เครื่องอ่านชี้ไปและเก็บไว้ในถังขยะโดยเรียกใช้การเรียก SetLeafData เมื่อใดก็ตามที่พบรายการข้อมูล Leaf
|
ชั้นเรียน |
|
---|---|
nl:: |
|
nl:: |
โครงสร้าง |
|
---|---|
nl:: |
|
nl:: |
โครงสร้างสคีมาหลักที่จัดเก็บข้อมูลสคีมา |
แอตทริบิวต์สาธารณะแบบคงที่
ออฟเซ็ตตาราง KkTable
const uint32_t kHandleTableOffset = 2
แอตทริบิวต์สาธารณะ
สคีมา mm
const Schema mSchema
ฟังก์ชันสาธารณะ
FindLowestCommonAncestor
PropertyPathHandle FindLowestCommonAncestor( PropertyPathHandle aHandle1, PropertyPathHandle aHandle2, PropertyPathHandle *aHandle1BranchChild, PropertyPathHandle *aHandle2BranchChild ) const
จะคํานวณแฮนเดิลที่ต่ําที่สุดซึ่งทําหน้าที่เป็นระดับบนสุดของแฮนเดิลทั้ง 2 รายการนี้ เนื่องจากแฮนเดิลพร็อพเพอร์ตี้ 2 รายการ
นอกจากนี้ ให้แสดงผลสาขาย่อย 2 สาขาที่มีแฮนเดิลทั้ง 2 หมายเลข (แม้ว่าเหมือนกัน)
รายละเอียด | |||
---|---|---|---|
แสดงผลค่า |
|
แฮนเดิล GetChild
PropertyPathHandle GetChildHandle( PropertyPathHandle aParentHandle, uint8_t aContextTag ) const
ความลึกที่ได้รับ
int32_t GetDepth( PropertyPathHandle aHandle ) const
คํานวณความลึกในแผนผังสคีมาสําหรับแฮนเดิลที่กําหนด
รายละเอียด | |||
---|---|---|---|
แสดงผลค่า |
|
แฮนเดิล GetDictionaryItem
PropertyPathHandle GetDictionaryItemHandle( PropertyPathHandle aParentHandle, uint16_t aDictionaryKey ) const
GetFirstChild
PropertyPathHandle GetFirstChild( PropertyPathHandle aParentHandle ) const
แสดงผลแฮนเดิลย่อยแรกที่เชื่อมโยงกับระดับบนสุด
รายละเอียด | |||
---|---|---|---|
แสดงผลค่า |
|
รับเวอร์ชันสูงสุด
SchemaVersion GetHighestForwardVersion( SchemaVersion aVersion ) const
เวอร์ชันของสคีมาสคีมาที่ระบุที่ระบุจะส่งคืนเวอร์ชันสคีมาที่เข้ากันได้สูงสุด
เวอร์ชันที่เข้ากันได้ต่ําสุด
SchemaVersion GetLowestCompatibleVersion( SchemaVersion aVersion ) const
เวอร์ชันของสคีมาสคีมาที่ระบุที่ระบุจะส่งคืนเวอร์ชันสคีมาขั้นต่ําที่เข้ากันได้
ดาวน์โหลดแผนที่
const PropertyInfo * GetMap( PropertyPathHandle aHandle ) const
แสดงผลตัวชี้ไปยังโครงสร้าง PropertyInfo ที่อธิบายแฮนเดิลเส้นทางที่เจาะจง
รายละเอียด | |||
---|---|---|---|
แสดงผลค่า |
|
เวอร์ชันของ GetMax
SchemaVersion GetMaxVersion() const
เวอร์ชัน GetMin
SchemaVersion GetMinVersion() const
ดาวน์โหลดถัดไป
PropertyPathHandle GetNextChild( PropertyPathHandle aParentId, PropertyPathHandle aChildHandle ) const
แฮนเดิลที่มีการจัดการถัดไปจะส่งคืนแฮนเดิลย่อยถัดไปที่เชื่อมโยงกับบัญชีระดับบนสุดที่เฉพาะเจาะจง
รายละเอียด | |||
---|---|---|---|
แสดงผลค่า |
|
ผู้ปกครอง
PropertyPathHandle GetParent( PropertyPathHandle aHandle ) const
แสดงผลแฮนเดิลระดับบนสุดของแฮนเดิลเส้นทางย่อยที่ระบุ
ระบบจะเก็บรักษาคีย์พจนานุกรมในแฮนเดิลไว้ในกรณีที่แฮนเดิลหลักเป็นองค์ประกอบพจนานุกรมด้วย
รายละเอียด | |||
---|---|---|---|
แสดงผลค่า |
|
รหัส GetProfile
uint32_t GetProfileId( void ) const
แสดงรหัสโปรไฟล์ของลักษณะที่เกี่ยวข้อง
รายละเอียด | |||
---|---|---|---|
แสดงผลค่า |
|
แท็ก GetRelativePath
WEAVE_ERROR GetRelativePathTags( const PropertyPathHandle aCandidateHandle, uint64_t *aTags, const uint32_t aTagsSize, uint32_t & aNumTags ) const
แปลง PropertyPathHandle เป็นอาร์เรย์ของแท็กบริบท
รายละเอียด | |||||||||
---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||
การคืนสินค้า |
WEhave_NO_ERROR ในกรณีที่สําเร็จ; WEhave_ERROR_NO_MEMORY หาก aTag มีขนาดเล็กเกินกว่าที่จะจัดเก็บเส้นทางแบบเต็ม
|
รับแท็ก
uint64_t GetTag( PropertyPathHandle aHandle ) const
แสดงผลแท็กที่เชื่อมโยงกับแฮนเดิลเส้นทาง
หากเป็นองค์ประกอบของพจนานุกรม ฟังก์ชันนี้จะแสดงผล ProfileTag ไม่เช่นนั้นระบบจะแสดงแท็กบริบท
รายละเอียด | |||
---|---|---|---|
แสดงผลค่า |
|
ส่วน GetVersionIntersection
bool GetVersionIntersection( SchemaVersionRange & aVersion, SchemaVersionRange & aIntersection ) const
เพื่อให้มีช่วงฟังก์ชันนี้ ฟังก์ชันนี้จะตรวจสอบว่ามีจุดร่วมระหว่างค่าดังกล่าวหรือไม่ และสคีมาที่อยู่เบื้องหลังเครื่องมือสคีมานี้รองรับมีอะไรบ้าง
หากมีทางแยก ฟังก์ชันดังกล่าวจะส่งคืนข้อมูลจริง และอัปเดตอาร์กิวเมนต์ AIntersection ที่ผ่านเพื่อสะท้อนให้เห็นว่าผลการทดสอบการแยกนั้น
พจนานุกรม
bool IsDictionary( PropertyPathHandle aHandle ) const
ส่งคืนค่า "จริง" หากแฮนเดิลเป็นพจนานุกรม (ไม่ใช่ในพจนานุกรม โปรดดูวิธีการด้านล่าง)
รายละเอียด | |||
---|---|---|---|
แสดงผลค่า |
|
ชั่วคราว
bool IsEphemeral( PropertyPathHandle aHandle ) const
พจนานุกรม
bool IsInDictionary( PropertyPathHandle aHandle, PropertyPathHandle & aDictionaryItemHandle ) const
แสดงค่า "จริง" หากแฮนเดิลอยู่ในภายในพจนานุกรม (องค์ประกอบพจนานุกรม)
ผู้ใช้ที่ส่งผ่านแฮนเดิล (aDictionaryItemHandle) จะอัปเดตให้ชี้ไปที่แฮนเดิลองค์ประกอบพจนานุกรมด้านบนสุดภายในพจนานุกรม
รายละเอียด | |||
---|---|---|---|
แสดงผลค่า |
|
เกาะใบไม้
bool IsLeaf( PropertyPathHandle aPropertyHandle ) const
แสดงผลเป็น "จริง" หากแฮนเดิลหมายถึงโหนด Leaf ในแผนผังสคีมา
รายละเอียด | |||
---|---|---|---|
แสดงผลค่า |
|
เป็นค่าว่าง
bool IsNullable( PropertyPathHandle aHandle ) const
ไม่บังคับ
bool IsOptional( PropertyPathHandle aHandle ) const
เป็นผู้ปกครอง
bool IsParent( PropertyPathHandle aChildHandle, PropertyPathHandle aParentHandle ) const
ตรวจสอบว่าแฮนเดิลหนึ่งเป็นของแฮนเดิลอื่นหรือไม่
ซึ่งอาจเป็นเพราะผู้ปกครองโดยอ้อม
รายละเอียด | |||
---|---|---|---|
แสดงผลค่า |
|
เส้นทางการจัดการแผนที่
WEAVE_ERROR MapHandleToPath( PropertyPathHandle aHandle, nl::Weave::TLV::TLVWriter & aPathWriter ) const
MapPathToHandle
WEAVE_ERROR MapPathToHandle( nl::Weave::TLV::TLVReader & aPathReader, PropertyPathHandle & aHandle ) const
ให้อ่านแท็กที่เกี่ยวข้องที่รากขององค์ประกอบเส้นทาง WDM แล้วอ่านแท็กที่เกี่ยวข้องและระบุแฮนเดิลเส้นทางที่เทียบเท่า
รายละเอียด | |||||
---|---|---|---|---|---|
แสดงผลค่า |
|
MapPathToHandle
WEAVE_ERROR MapPathToHandle( const char *aPathString, PropertyPathHandle & aHandle ) const
ในการนําเสนอสตริงสตริงของเส้นทาง WDM ให้อ่านแท็กที่เกี่ยวข้องและระบุแฮนเดิลของเส้นทางที่เทียบเท่า
เส้นทาง WDM จะแสดงเป็นสตริงโดยใช้กฎต่อไปนี้
- แท็กคั่นด้วย
/
- เส้นทางต้องเริ่มต้นด้วย
/
นําหน้า และไม่มีเครื่องหมายทับปิดท้าย - แท็กตัวเลขในเส้นทาง WDM ต้องเข้ารหัสลับโดยใช้ไลบรารี C มาตรฐานเพื่อจํานวนเต็มสําหรับการเข้ารหัสสตริง กล่าวคือ การเข้ารหัสทศนิยม (ค่าเริ่มต้น) ต้องไม่มี 0 นําหน้า การเข้ารหัสเลขฐานสิบหกต้องเริ่มต้นด้วย
0x
และการเข้ารหัสฐานแปดต้องมี0
นําหน้า
รายละเอียด | |||||||
---|---|---|---|---|---|---|---|
แสดงผลค่า |
|
รหัสโปรไฟล์ที่ตรงกัน
bool MatchesProfileId( uint32_t aProfileId ) const
แสดงผลเป็น "จริง" หากการส่งต่อใน profileId ตรงกับที่เก็บไว้ในสคีมา
รายละเอียด | |||
---|---|---|---|
แสดงผลค่า |
|
เรียกข้อมูล
WEAVE_ERROR RetrieveData( PropertyPathHandle aHandle, uint64_t aTagToWrite, nl::Weave::TLV::TLVWriter & aWriter, IGetDataDelegate *aDelegate, IDirtyPathCut *apDirtyPathCut ) const
จากแฮนเดิลเส้นทางและตําแหน่งผู้เขียนในองค์ประกอบข้อมูลที่เกี่ยวข้อง ให้เรียกข้อมูล Leaf จากแหล่งข้อมูล และเขียนลงในบัฟเฟอร์ที่ผู้เขียนชี้ไปที่ในลักษณะที่เป็นไปตามสคีมา
รายละเอียด | |||||
---|---|---|---|---|---|
แสดงผลค่า |
|
เรียกข้อมูลค่าพจนานุกรม
WEAVE_ERROR RetrieveUpdatableDictionaryData( PropertyPathHandle aHandle, uint64_t aTagToWrite, nl::Weave::TLV::TLVWriter & aWriter, IGetDataDelegate *aDelegate, PropertyPathHandle & aPropertyPathHandleOfDictItemToStartFrom ) const
ข้อมูลร้านค้า
WEAVE_ERROR StoreData( PropertyPathHandle aHandle, nl::Weave::TLV::TLVReader & aReader, ISetDataDelegate *aDelegate, IPathFilter *aPathFilter ) const
แฮนเดิลแฮนเดิลที่วางอยู่บนองค์ประกอบข้อมูลที่เกี่ยวข้อง ให้ประมวลผลบัฟเฟอร์ข้อมูลที่เครื่องอ่านชี้ไปและเก็บไว้ในถังขยะโดยเรียกใช้การเรียก SetLeafData เมื่อใดก็ตามที่พบรายการข้อมูล Leaf
Details | |||||
---|---|---|---|---|---|
แสดงผลค่า |
|