nl:: Weave:: Profiles:: DataManagement_Current:: TraitSchemaEngine
#include <src/lib/profiles/data-management/Current/TraitData.h>
Şema motoru, belirli bir özellikle ilişkilendirilmiş şema bilgilerini alır ve bunları ayrıştırıp WDM makinesi tarafından kullanılabilecek bir forma dönüştürme olanağı sağlar.
Özet
Buna, PathHandle'lardan WDM yollarına (ve tam tersi) dönüşüm yapma, şemanın kendisini yorumlama/sorgulama ve belirli bir herkese açık kullanıcı adı verilen TLV'den veri okuyup yazmaya yardımcı olacak yöntemler yer alır.
Şemanın kendisi, belirli bir özellik için WDM yollarının/verilerinin genel ayrıştırılmasına/birleştirilmesine olanak tanıyacak şekilde yeterince açıklanmış tablo biçiminde depolanır. Bu tablolar, nihai "kod oluşturma" çıktısı olacaktır (Terimin kendisi, herhangi bir kod oluşturulmadığından biraz yanıltıcıdır :P)
Herkese açık statik özellikler |
|
---|---|
kHandleTableOffset = 2
|
const uint32_t
|
Herkese açık özellikler |
|
---|---|
mSchema
|
const Schema
|
Herkese açık işlevler |
|
---|---|
FindLowestCommonAncestor(PropertyPathHandle aHandle1, PropertyPathHandle aHandle2, PropertyPathHandle *aHandle1BranchChild, PropertyPathHandle *aHandle2BranchChild) const
|
İki mülk herkese açık kullanıcı adı olduğunda, bu herkese açık kullanıcı adlarının her ikisinin de üst öğesi olan en düşük herkese açık kullanıcı adını hesaplayın.
|
GetChildHandle(PropertyPathHandle aParentHandle, uint8_t aContextTag) const
|
|
GetDepth(PropertyPathHandle aHandle) const
|
int32_t
Belirli bir herkese açık kullanıcı adı için şema ağacında derinliği hesaplama.
|
GetDictionaryItemHandle(PropertyPathHandle aParentHandle, uint16_t aDictionaryKey) const
|
|
GetFirstChild(PropertyPathHandle aParentHandle) const
|
Belirli bir üst öğeyle ilişkili ilk alt herkese açık kullanıcı adını döndürür.
|
GetHighestForwardVersion(SchemaVersion aVersion) const
|
SchemaVersion
Sağlanan veri şeması sürümü düşünüldüğünde, bu işlem, yönlendirmeyle uyumlu en yüksek şema sürümünü döndürür.
|
GetLowestCompatibleVersion(SchemaVersion aVersion) const
|
SchemaVersion
Sağlanan veri şeması sürümü dikkate alındığında, minimum uyumlu şema sürümü döndürülür.
|
GetMap(PropertyPathHandle aHandle) const
|
const PropertyInfo *
Belirli bir yol tutma yerini açıklayan PropertyInfo yapısına işaretçi döndürür.
|
GetMaxVersion() const
|
SchemaVersion
|
GetMinVersion() const
|
SchemaVersion
|
GetNextChild(PropertyPathHandle aParentId, PropertyPathHandle aChildHandle) const
|
Mevcut bir alt öğe için herkese açık kullanıcı adı verildiğinde, belirli bir üst öğeyle ilişkili sonraki alt herkese açık kullanıcı adını döndürür.
|
GetParent(PropertyPathHandle aHandle) const
|
Belirli bir alt yol tanıtıcısının üst tanıtıcısını döndürür.
|
GetProfileId(void) const
|
uint32_t
İlişkilendirilmiş özelliğin profil kimliğini döndürür.
|
GetRelativePathTags(const PropertyPathHandle aCandidateHandle, uint64_t *aTags, const uint32_t aTagsSize, uint32_t & aNumTags) const
|
PropertyPathHandle'ı bir bağlam etiketleri dizisine dönüştürür.
|
GetTag(PropertyPathHandle aHandle) const
|
uint64_t
Yol işleyiciyle ilişkilendirilen etiketi döndürür.
|
GetVersionIntersection(SchemaVersionRange & aVersion, SchemaVersionRange & aIntersection) const
|
bool
Bir sürüm aralığı söz konusu olduğunda bu işlev, sürüm aralığı ile bu şema motorunu destekleyen şemanın desteklediği öğe arasında bir uyumluluk kesişimi olup olmadığını kontrol eder.
|
IsDictionary(PropertyPathHandle aHandle) const
|
bool
Herkese açık kullanıcı adı sözlükteyse (ve sözlükte değilse; aşağıdaki yönteme bakın) true değerini döndürür.
|
IsEphemeral(PropertyPathHandle aHandle) const
|
bool
|
IsInDictionary(PropertyPathHandle aHandle, PropertyPathHandle & aDictionaryItemHandle) const
|
bool
Herkese açık kullanıcı adı bir sözlüğün (bir sözlük öğesi) içinde yer alıyorsa true değerini döndürür.
|
IsLeaf(PropertyPathHandle aPropertyHandle) const
|
bool
Herkese açık kullanıcı adı şema ağacındaki bir yaprak düğüme işaret ederse true değerini döndürür.
|
IsNullable(PropertyPathHandle aHandle) const
|
bool
|
IsOptional(PropertyPathHandle aHandle) const
|
bool
|
IsParent(PropertyPathHandle aChildHandle, PropertyPathHandle aParentHandle) const
|
bool
Belirli bir herkese açık kullanıcı adının başka bir herkese açık kullanıcı adının alt öğesi olup olmadığını kontrol eder.
|
MapHandleToPath(PropertyPathHandle aHandle, nl::Weave::TLV::TLVWriter & aPathWriter) const
|
Yol tutma yerini TLV yoluna dönüştürün.
|
MapPathToHandle(nl::Weave::TLV::TLVReader & aPathReader, PropertyPathHandle & aHandle) const
|
WDM yol öğesinin köküne yerleştirilmiş bir okuyucu göz önünde bulundurulduğunda, ilgili etiketleri okuyun ve eşdeğer yol tutma yerini sağlayın.
|
MapPathToHandle(const char *aPathString, PropertyPathHandle & aHandle) const
|
WDM yolunun dize temsilini dikkate alarak, ilgili etiketleri okuyun ve eşdeğer yol tanıtıcısını sağlayın.
|
MatchesProfileId(uint32_t aProfileId) const
|
bool
profileId içine aktarılan şemada depolananla eşleşirse true değerini döndürür.
|
RetrieveData(PropertyPathHandle aHandle, uint64_t aTagToWrite, nl::Weave::TLV::TLVWriter & aWriter, IGetDataDelegate *aDelegate, IDirtyPathCut *apDirtyPathCut) const
|
Bir yol tutma yeri ve karşılık gelen veri öğesinde bir yazar konumu verildiğinde, yaprak verilerini kaynaktan alın ve şemaya uygun bir şekilde yazar tarafından işaret edilen arabelleğe yazın.
|
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
|
Bir yol tutamacı ve karşılık gelen veri öğesine yerleştirilmiş bir okuyucu göz önünde bulundurulduğunda, okuyucunun gösterdiği veri arabelleğini işleyin ve bir yaprak veri öğesiyle karşılaşıldığında SetLeafData çağrısını çağırarak havuza depolayın.
|
Sınıflar |
|
---|---|
nl:: |
|
nl:: |
Yapılar |
|
---|---|
nl:: |
|
nl:: |
Şema bilgilerini barındıran ana şema yapısı. |
Herkese açık statik özellikler
kHandleTableOffset
const uint32_t kHandleTableOffset = 2
Herkese açık özellikler
mSchema
const Schema mSchema
Herkese açık işlevler
FindLowestCommonAncestor
PropertyPathHandle FindLowestCommonAncestor( PropertyPathHandle aHandle1, PropertyPathHandle aHandle2, PropertyPathHandle *aHandle1BranchChild, PropertyPathHandle *aHandle2BranchChild ) const
İki mülk herkese açık kullanıcı adı olduğunda, bu herkese açık kullanıcı adlarının her ikisinin de üst öğesi olan en düşük herkese açık kullanıcı adını hesaplayın.
Ayrıca, iki herkese açık kullanıcı adını içeren iki alt dalı da (aynı olsalar bile) döndürün.
Ayrıntılar | |||
---|---|---|---|
Değerleri Döndür |
|
GetChildHandle
PropertyPathHandle GetChildHandle( PropertyPathHandle aParentHandle, uint8_t aContextTag ) const
GetDepth
int32_t GetDepth( PropertyPathHandle aHandle ) const
Belirli bir herkese açık kullanıcı adı için şema ağacında derinliği hesaplama.
Ayrıntılar | |||
---|---|---|---|
Değerleri Döndür |
|
GetDictionaryItemHandle
PropertyPathHandle GetDictionaryItemHandle( PropertyPathHandle aParentHandle, uint16_t aDictionaryKey ) const
GetFirstChild
PropertyPathHandle GetFirstChild( PropertyPathHandle aParentHandle ) const
Belirli bir üst öğeyle ilişkili ilk alt herkese açık kullanıcı adını döndürür.
Ayrıntılar | |||
---|---|---|---|
Değerleri Döndür |
|
GetHighestForwardVersion
SchemaVersion GetHighestForwardVersion( SchemaVersion aVersion ) const
Sağlanan veri şeması sürümü düşünüldüğünde, bu işlem, yönlendirmeyle uyumlu en yüksek şema sürümünü döndürür.
GetLowestCompatibleVersion
SchemaVersion GetLowestCompatibleVersion( SchemaVersion aVersion ) const
Sağlanan veri şeması sürümü dikkate alındığında, minimum uyumlu şema sürümü döndürülür.
GetMap
const PropertyInfo * GetMap( PropertyPathHandle aHandle ) const
Belirli bir yol tutma yerini açıklayan PropertyInfo yapısına işaretçi döndürür.
Ayrıntılar | |||
---|---|---|---|
Değerleri Döndür |
|
GetMaxVersion
SchemaVersion GetMaxVersion() const
GetMinVersion
SchemaVersion GetMinVersion() const
GetNextChild
PropertyPathHandle GetNextChild( PropertyPathHandle aParentId, PropertyPathHandle aChildHandle ) const
Mevcut bir alt öğe için herkese açık kullanıcı adı verildiğinde, belirli bir üst öğeyle ilişkili sonraki alt herkese açık kullanıcı adını döndürür.
Ayrıntılar | |||
---|---|---|---|
Değerleri Döndür |
|
GetParent
PropertyPathHandle GetParent( PropertyPathHandle aHandle ) const
Belirli bir alt yol tanıtıcısının üst tanıtıcısını döndürür.
Üst tutma yerinin aynı zamanda bir sözlük öğesi olması durumunda herkese açık kullanıcı adındaki sözlük anahtarları korunur.
Ayrıntılar | |||
---|---|---|---|
Değerleri Döndür |
|
GetProfileId
uint32_t GetProfileId( void ) const
İlişkilendirilmiş özelliğin profil kimliğini döndürür.
Ayrıntılar | |||
---|---|---|---|
Değerleri Döndür |
|
GetRelativePathTags
WEAVE_ERROR GetRelativePathTags( const PropertyPathHandle aCandidateHandle, uint64_t *aTags, const uint32_t aTagsSize, uint32_t & aNumTags ) const
PropertyPathHandle'ı bir bağlam etiketleri dizisine dönüştürür.
Ayrıntılar | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametreler |
|
||||||||
İadeler |
Başarılı olursa WEAVE_NO_ERROR; aTag, tam yolu depolayamayacak kadar küçükse WEAVE_ERROR_NO_MEMORY.
|
GetTag
uint64_t GetTag( PropertyPathHandle aHandle ) const
Yol işleyiciyle ilişkilendirilen etiketi döndürür.
Sözlük öğesiyse bu işlev ProfileTag'i döndürür. Aksi takdirde, bağlam etiketlerini döndürür.
Ayrıntılar | |||
---|---|---|---|
Değerleri Döndür |
|
GetVersionIntersection
bool GetVersionIntersection( SchemaVersionRange & aVersion, SchemaVersionRange & aIntersection ) const
Bir sürüm aralığı söz konusu olduğunda bu işlev, sürüm aralığı ile bu şema motorunu destekleyen şemanın desteklediği öğe arasında bir uyumluluk kesişimi olup olmadığını kontrol eder.
Bir kesişim varsa, işlev true değerini döndürür ve iletilen aIntersection bağımsız değişkenini söz konusu kesişim testinin sonuçlarını yansıtacak şekilde günceller.
IsDictionary
bool IsDictionary( PropertyPathHandle aHandle ) const
Herkese açık kullanıcı adı sözlükteyse (ve sözlükte değilse; aşağıdaki yönteme bakın) true değerini döndürür.
Ayrıntılar | |||
---|---|---|---|
Değerleri Döndür |
|
IsEphemeral
bool IsEphemeral( PropertyPathHandle aHandle ) const
IsInDictionary
bool IsInDictionary( PropertyPathHandle aHandle, PropertyPathHandle & aDictionaryItemHandle ) const
Herkese açık kullanıcı adı bir sözlüğün (bir sözlük öğesi) içinde yer alıyorsa true değerini döndürür.
Herkese açık kullanıcı adında (aDictionaryItemHandle) geçirilen bir kullanıcı, sözlükte en üst sözlük öğesi tutma yerini işaret edecek şekilde güncellenir.
Ayrıntılar | |||
---|---|---|---|
Değerleri Döndür |
|
IsLeaf
bool IsLeaf( PropertyPathHandle aPropertyHandle ) const
Herkese açık kullanıcı adı şema ağacındaki bir yaprak düğüme işaret ederse true değerini döndürür.
Ayrıntılar | |||
---|---|---|---|
Değerleri Döndür |
|
IsNullable
bool IsNullable( PropertyPathHandle aHandle ) const
IsOptional
bool IsOptional( PropertyPathHandle aHandle ) const
IsParent
bool IsParent( PropertyPathHandle aChildHandle, PropertyPathHandle aParentHandle ) const
Belirli bir herkese açık kullanıcı adının başka bir herkese açık kullanıcı adının alt öğesi olup olmadığını kontrol eder.
Bu, dolaylı bir ebeveyn olabilir.
Ayrıntılar | |||
---|---|---|---|
Değerleri Döndür |
|
MapHandleToPath
WEAVE_ERROR MapHandleToPath( PropertyPathHandle aHandle, nl::Weave::TLV::TLVWriter & aPathWriter ) const
MapPathToHandle
WEAVE_ERROR MapPathToHandle( nl::Weave::TLV::TLVReader & aPathReader, PropertyPathHandle & aHandle ) const
WDM yol öğesinin köküne yerleştirilmiş bir okuyucu göz önünde bulundurulduğunda, ilgili etiketleri okuyun ve eşdeğer yol tutma yerini sağlayın.
Ayrıntılar | |||||
---|---|---|---|---|---|
Değerleri Döndür |
|
MapPathToHandle
WEAVE_ERROR MapPathToHandle( const char *aPathString, PropertyPathHandle & aHandle ) const
WDM yolunun dize temsilini dikkate alarak, ilgili etiketleri okuyun ve eşdeğer yol tanıtıcısını sağlayın.
WDM yolu, aşağıdaki kurallar kullanılarak bir dize olarak gösterilir:
- etiketler
/
ile ayrılır - yolun bir başında
/
ile başlaması ZORUNLUDUR ve sonuna eğik çizgi İÇERMEMELİDİR - WDM yolundaki sayısal etiketlerin tamsayıdan dizeye kodlama için standart C kitaplığı kullanılarak kodlanması ZORUNLUDUR. Diğer bir deyişle, ondalık kodlama (varsayılan) başında bir 0 İÇERMEMELİDİR, onaltılık kodlamanın
0x
ile başlaması ZORUNLUDUR ve sekizlik kodlama, başında0
OLMALIDIR.
Ayrıntılar | |||||||
---|---|---|---|---|---|---|---|
Değerleri Döndür |
|
MatchesProfileId
bool MatchesProfileId( uint32_t aProfileId ) const
profileId içine aktarılan şemada depolananla eşleşirse true değerini döndürür.
Ayrıntılar | |||
---|---|---|---|
Değerleri Döndür |
|
RetrieveData
WEAVE_ERROR RetrieveData( PropertyPathHandle aHandle, uint64_t aTagToWrite, nl::Weave::TLV::TLVWriter & aWriter, IGetDataDelegate *aDelegate, IDirtyPathCut *apDirtyPathCut ) const
Bir yol tutma yeri ve karşılık gelen veri öğesinde bir yazar konumu verildiğinde, yaprak verilerini kaynaktan alın ve şemaya uygun bir şekilde yazar tarafından işaret edilen arabelleğe yazın.
Ayrıntılar | |||||
---|---|---|---|---|---|
Değerleri Döndür |
|
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
Bir yol tutamacı ve karşılık gelen veri öğesine yerleştirilmiş bir okuyucu göz önünde bulundurulduğunda, okuyucunun gösterdiği veri arabelleğini işleyin ve bir yaprak veri öğesiyle karşılaşıldığında SetLeafData çağrısını çağırarak havuza depolayın.
Ayrıntılar | |||||
---|---|---|---|---|---|
Değerleri Döndür |
|