nl:: बुना:: प्रोफ़ाइलें:: DataManagement_current:: TraitSchemaEngine
#include <src/lib/profiles/data-management/Current/TraitData.h>
स्कीमा इंजन एक खास विशेषता से जुड़ी स्कीमा जानकारी लेता है और उसे पार्स करने और WDM मशीन से इस्तेमाल किए जाने लायक फ़ॉर्म में अनुवाद करने की सुविधाएं देता है.
खास जानकारी
इसमें पाथ हैंडल्स से WDM पाथ में बदलना (और इसके उलट), स्कीमा को समझने/समझने के तरीके और TLV को/से डेटा पढ़ने/लिखने में मदद करने के तरीके शामिल हैं.
स्कीमा खुद को टेबल फ़ॉर्मैट में स्टोर किया जाता है. इसकी जानकारी देने के लिए किसी खास विशेषता के लिए WDM पाथ/डेटा को सामान्य पार्सिंग/कंपोज़िशन की अनुमति दी जाती है. ये टेबल, 'code-gen' का अंतिम आउटपुट क्या होगा; (ऐसा शब्द जो किसी भी जनरेट किए गए कोड :P के मौजूद न होने की वजह से कुछ हद तक गुमराह करने वाला हो)
सार्वजनिक स्टैटिक विशेषताएं |
|
---|---|
kHandleTableOffset = 2
|
const uint32_t
|
सार्वजनिक विशेषताएं |
|
---|---|
mSchema
|
const Schema
|
सार्वजनिक फ़ंक्शन |
|
---|---|
FindLowestCommonAncestor(PropertyPathHandle aHandle1, PropertyPathHandle aHandle2, PropertyPathHandle *aHandle1BranchChild, PropertyPathHandle *aHandle2BranchChild) const
|
दो प्रॉपर्टी हैंडल देने के लिए, सबसे कम हैंडल की गिनती करें जो इन दोनों हैंडल के लिए पैरंट के तौर पर काम करता है.
|
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
अगर हैंडल स्कीमा पेड़ के पत्ती नोड के बारे में बताता है, तो यह 'सही' दिखाता है.
|
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
अगर प्रोफ़ाइल में दिया गया पास, स्कीमा में सेव किए गए मान से मेल खाता है, तो 'सही' दिखाता है.
|
RetrieveData(PropertyPathHandle aHandle, uint64_t aTagToWrite, nl::Weave::TLV::TLVWriter & aWriter, IGetDataDelegate *aDelegate, IDirtyPathCut *apDirtyPathCut) const
|
संबंधित डेटा एलिमेंट पर पाथ के हैंडल और लेखक की स्थिति को देखते हुए, स्रोत से लीफ़ के डेटा को फिर से पाएं और उसे बफ़र की तरफ़ लिखें, जिसमें लेखक का स्कीमा तरीके से पालन करने का ज़िक्र किया गया है.
|
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 कॉल का अनुरोध करके उसे सिंक में सेव करें.
|
क्लास |
|
---|---|
nl:: |
|
nl:: |
स्ट्रक्चर |
|
---|---|
nl:: |
|
nl:: |
मुख्य स्कीमा स्ट्रक्चर जिसमें स्कीमा की जानकारी होती है. |
सार्वजनिक स्टैटिक विशेषताएं
KHandleTableOffset
const uint32_t kHandleTableOffset = 2
सार्वजनिक विशेषताएं
mSchema
const Schema mSchema
सार्वजनिक फ़ंक्शन
फ़ाॅन्डकॉमनकॉमेस्टर्स
PropertyPathHandle FindLowestCommonAncestor( PropertyPathHandle aHandle1, PropertyPathHandle aHandle2, PropertyPathHandle *aHandle1BranchChild, PropertyPathHandle *aHandle2BranchChild ) const
दो प्रॉपर्टी हैंडल देने के लिए, सबसे कम हैंडल की गिनती करें जो इन दोनों हैंडल के लिए पैरंट के तौर पर काम करता है.
इसके अलावा, दोनों चाइल्ड ब्रांच दिखाएं, जिनमें दोनों में से हर हैंडल शामिल हो, भले ही वे एक जैसे हों.
ब्यौरा | |||
---|---|---|---|
सामान लौटाने की वैल्यू |
|
GetChildHandle पाएं
PropertyPathHandle GetChildHandle( PropertyPathHandle aParentHandle, uint8_t aContextTag ) const
गेटडेप्थ
int32_t GetDepth( PropertyPathHandle aHandle ) const
दिए गए हैंडल के लिए स्कीमा ट्री में गहराई का हिसाब लगाएं.
ब्यौरा | |||
---|---|---|---|
सामान लौटाने की वैल्यू |
|
Get शब्दकोश आइटमहैंडल
PropertyPathHandle GetDictionaryItemHandle( PropertyPathHandle aParentHandle, uint16_t aDictionaryKey ) const
GetFirstChild
PropertyPathHandle GetFirstChild( PropertyPathHandle aParentHandle ) const
किसी खास अभिभावक से जुड़े पहले चाइल्ड हैंडल को दिखाता है.
ब्यौरा | |||
---|---|---|---|
सामान लौटाने की वैल्यू |
|
सबसे आगे का वर्शन पाएं
SchemaVersion GetHighestForwardVersion( SchemaVersion aVersion ) const
किसी दिए गए डेटा स्कीमा वर्शन को देखते हुए, ऐसा करने से वह सबसे सही फ़ॉरवर्ड किया गया स्कीमा वर्शन दिखेगा.
Get यह सबसे कम काम का वर्शन
SchemaVersion GetLowestCompatibleVersion( SchemaVersion aVersion ) const
दिए गए डेटा स्कीमा वर्शन को देखते हुए, इससे कम से कम काम करने वाला स्कीमा वर्शन दिखेगा.
GetMap
const PropertyInfo * GetMap( PropertyPathHandle aHandle ) const
किसी खास पाथ हैंडल की जानकारी देने वाली PropertyInfo स्ट्रक्चर का पॉइंटर दिखाता है.
ब्यौरा | |||
---|---|---|---|
सामान लौटाने की वैल्यू |
|
GetMaxVersion
SchemaVersion GetMaxVersion() const
GetMinVersion
SchemaVersion GetMinVersion() const
अगला बच्चा पाएं
PropertyPathHandle GetNextChild( PropertyPathHandle aParentId, PropertyPathHandle aChildHandle ) const
किसी मौजूदा बच्चे को हैंडल देने के बाद, किसी खास अभिभावक से जुड़े अगले चाइल्ड हैंडल को दिखाता है.
ब्यौरा | |||
---|---|---|---|
सामान लौटाने की वैल्यू |
|
पैरंट पाएं
PropertyPathHandle GetParent( PropertyPathHandle aHandle ) const
दिए गए चाइल्ड पाथ हैंडल का पैरंट हैंडल दिखाता है.
हैंडल में डिक्शनरी कुंजियों को तब ही रखा जाता है, जब माता-पिता के हैंडल को भी शब्दकोश का एलिमेंट माना जाए.
ब्यौरा | |||
---|---|---|---|
सामान लौटाने की वैल्यू |
|
GetProfileId
uint32_t GetProfileId( void ) const
इससे जुड़ी विशेषता का प्रोफ़ाइल आईडी दिखाता है.
ब्यौरा | |||
---|---|---|---|
सामान लौटाने की वैल्यू |
|
मिलता-जुलता पाथ टैग पाएं
WEAVE_ERROR GetRelativePathTags( const PropertyPathHandle aCandidateHandle, uint64_t *aTags, const uint32_t aTagsSize, uint32_t & aNumTags ) const
PropertyPathHandle को संदर्भ टैग की श्रेणी में बदलता है.
ब्यौरा | |||||||||
---|---|---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||||
लौटाए गए सामान |
सफलता की स्थिति में WEAVE_NO_ERROR; अगर टैग का पूरा पाथ संग्रहित करने के लिए बहुत छोटा है तो WEAVE_ERROR_NO_MEMRY.
|
GetTag
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
IsIn शब्दकोश
bool IsInDictionary( PropertyPathHandle aHandle, PropertyPathHandle & aDictionaryItemHandle ) const
अगर हैंडल किसी शब्दकोश के शब्दकोश (अंदरूनी) है, तो 'सही' दिखाता है.
हैंडल (a शब्दकोश आइटमHandle) में पास किए गए उपयोगकर्ता को डिक्शनरी में सबसे ऊपर दिए गए डिक्शनरी एलिमेंट हैंडल पर ले जाने के लिए अपडेट किया गया है.
ब्यौरा | |||
---|---|---|---|
सामान लौटाने की वैल्यू |
|
इसलीफ़
bool IsLeaf( PropertyPathHandle aPropertyHandle ) const
अगर हैंडल स्कीमा पेड़ के पत्ती नोड के बारे में बताता है, तो यह 'सही' दिखाता है.
ब्यौरा | |||
---|---|---|---|
सामान लौटाने की वैल्यू |
|
शून्य नहीं है
bool IsNullable( PropertyPathHandle aHandle ) const
ज़रूरी नहीं है
bool IsOptional( PropertyPathHandle aHandle ) const
अभिभावक हैं
bool IsParent( PropertyPathHandle aChildHandle, PropertyPathHandle aParentHandle ) const
जांच करता है कि दिया गया हैंडल किसी दूसरे हैंडल का चाइल्ड है या नहीं.
यह ऐक्सेस सीधे तौर पर नहीं होने वाला हो सकता है.
ब्यौरा | |||
---|---|---|---|
सामान लौटाने की वैल्यू |
|
MapHandleToपाथ
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
होना चाहिए.
ब्यौरा | |||||||
---|---|---|---|---|---|---|---|
सामान लौटाने की वैल्यू |
|
MatchesProfileId
bool MatchesProfileId( uint32_t aProfileId ) const
अगर प्रोफ़ाइल में दिया गया पास, स्कीमा में सेव किए गए मान से मेल खाता है, तो 'सही' दिखाता है.
ब्यौरा | |||
---|---|---|---|
सामान लौटाने की वैल्यू |
|
डेटा वापस पाएं
WEAVE_ERROR RetrieveData( PropertyPathHandle aHandle, uint64_t aTagToWrite, nl::Weave::TLV::TLVWriter & aWriter, IGetDataDelegate *aDelegate, IDirtyPathCut *apDirtyPathCut ) const
संबंधित डेटा एलिमेंट पर पाथ के हैंडल और लेखक की स्थिति को देखते हुए, स्रोत से लीफ़ के डेटा को फिर से पाएं और उसे बफ़र की तरफ़ लिखें, जिसमें लेखक का स्कीमा तरीके से पालन करने का ज़िक्र किया गया है.
ब्यौरा | |||||
---|---|---|---|---|---|
सामान लौटाने की वैल्यू |
|
Get Updatable डिक्शनरीData
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 कॉल का अनुरोध करके उसे सिंक में सेव करें.
ब्यौरा | |||||
---|---|---|---|---|---|
सामान लौटाने की वैल्यू |
|