nl:: Weave:: Profiles:: DataManagement_Current:: TraitSchemaEngine
#include <src/lib/profiles/data-management/Current/TraitData.h>
Şema motoru, belirli bir özellikle ilişkili şema bilgilerini alır ve bu bilgileri, ayrıştırarak WDM makinesi tarafından kullanılabilecek bir biçime dönüştürme olanağı sağlar.
Özet
PathHandles'dan WDM yollarına dönüştürme (veya bunun tersi), şemanın kendisini yorumlama/sorgulama yöntemleri ve bir herkese açık TLV'den veri okumaya/yazmaya yardımcı olacak yöntemleri içerir.
Şemanın kendisi, belirli bir özelliğe ilişkin WDM yollarının/verilerinin genel ayrıştırılmasına/birleştirilmesine olanak tanıyacak şekilde tablo biçiminde depolanır. Bu tablolar, "code-gen" öğesinin nihai çıkışı olacak (oluşturulan herhangi bir kod olmadığı için terimin kendisi bir şekilde yanıltıcıdır :P)
Herkese açık statik özellikler |
|
---|---|
kHandleTableOffset = 2
|
const uint32_t
|
Herkese açık özellikler |
|
---|---|
mSchema
|
const Schema
|
Kamu işlevleri |
|
---|---|
FindLowestCommonAncestor(PropertyPathHandle aHandle1, PropertyPathHandle aHandle2, PropertyPathHandle *aHandle1BranchChild, PropertyPathHandle *aHandle2BranchChild) const
|
İki özellik tanıtıcısı göz önünde bulundurulduğunda, bu herkese açık kullanıcı adlarının her ikisi için de üst öğe olarak kullanılacak 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ındaki derinliği hesaplayın.
|
GetDictionaryItemHandle(PropertyPathHandle aParentHandle, uint16_t aDictionaryKey) const
|
|
GetFirstChild(PropertyPathHandle aParentHandle) const
|
Belirli bir üst öğeyle ilişkilendirilmiş ilk alt herkese açık kullanıcı adını döndürür.
|
GetHighestForwardVersion(SchemaVersion aVersion) const
|
SchemaVersion
Sağlanan bir veri şeması sürümü belirtildiğinde, bu işlem en yüksek ileriye dönük uyumlu şema sürümünü döndürür.
|
GetLowestCompatibleVersion(SchemaVersion aVersion) const
|
SchemaVersion
Sağlanan bir veri şeması sürümü belirtildiğinde, bu işlem minimum uyumlu şema sürümünü döndürür.
|
GetMap(PropertyPathHandle aHandle) const
|
const PropertyInfo *
Belirli bir yol tanıtıcısını açıklayan PropertyInfo yapısına bir 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şkilendirilmiş bir sonraki alt herkese açık kullanıcı adını döndürür.
|
GetParent(PropertyPathHandle aHandle) const
|
Belirli bir alt yol herkese açık kullanıcı adının üst işleyicisini 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 etiketi dizisine dönüştürür.
|
GetTag(PropertyPathHandle aHandle) const
|
uint64_t
Bir yol herkese açık kullanıcı adıyla ilişkilendirilen etiketi döndürür.
|
GetVersionIntersection(SchemaVersionRange & aVersion, SchemaVersionRange & aIntersection) const
|
bool
Bir sürüm aralığı belirleyerek bu işlev, bu ile bu şema motorunu destekleyen şemanın desteklediği öğeler arasında bir uyumluluk kesişimi olup olmadığını kontrol eder.
|
IsDictionary(PropertyPathHandle aHandle) const
|
bool
Herkese açık kullanıcı adı bir sözlükse (ve sözlükte değilse) true değerini döndürür. Aşağıdaki yönteme bakın.
|
IsEphemeral(PropertyPathHandle aHandle) const
|
bool
|
IsInDictionary(PropertyPathHandle aHandle, PropertyPathHandle & aDictionaryItemHandle) const
|
bool
Tutma yeri bir sözlüğün (sözlük öğesi) içindeyse 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üğümüne işaret ediyorsa 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 tanıtıcısını TLV yoluna dönüştürün.
|
MapPathToHandle(nl::Weave::TLV::TLVReader & aPathReader, PropertyPathHandle & aHandle) const
|
WDM yol öğesinin köküne konumlandırılmış bir okuyucu verildiğinde ilgili etiketleri okuyun ve eşdeğer yol tanıtıcısını sağlayın.
|
MapPathToHandle(const char *aPathString, PropertyPathHandle & aHandle) const
|
Bir WDM yolunun dize gösterimiyle ilgili etiketler okunur ve eşdeğer yol tanıtıcısı sağlanır.
|
MatchesProfileId(uint32_t aProfileId) const
|
bool
profileId'de iletilen bilgi, şemada depolananla eşleşiyorsa true değerini döndürür.
|
RetrieveData(PropertyPathHandle aHandle, uint64_t aTagToWrite, nl::Weave::TLV::TLVWriter & aWriter, IGetDataDelegate *aDelegate, IDirtyPathCut *apDirtyPathCut) const
|
Karşılık gelen veri öğesinde bir yol tutma yeri ve yazar konumu belirleyerek 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 verildiğinde, 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 havuzda depolayın.
|
Sınıflar |
|
---|---|
nl:: |
|
nl:: |
Yapılar |
|
---|---|
nl:: |
|
nl:: |
Şema bilgilerini içeren ana şema yapısı. |
Herkese açık statik özellikler
kHandleTableOffset
const uint32_t kHandleTableOffset = 2
Herkese açık özellikler
mSchema
const Schema mSchema
Kamu işlevleri
FindLowestCommonAncestor
PropertyPathHandle FindLowestCommonAncestor( PropertyPathHandle aHandle1, PropertyPathHandle aHandle2, PropertyPathHandle *aHandle1BranchChild, PropertyPathHandle *aHandle2BranchChild ) const
İki özellik tanıtıcısı göz önünde bulundurulduğunda, bu herkese açık kullanıcı adlarının her ikisi için de üst öğe olarak kullanılacak en düşük herkese açık kullanıcı adını hesaplayın.
Ayrıca, iki herkese açık kullanıcı adının her birini içeren iki alt dalı döndürün (aynı olsalar bile).
Ayrıntılar | |||
---|---|---|---|
Döndürülen Değerler |
|
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ındaki derinliği hesaplayın.
Ayrıntılar | |||
---|---|---|---|
Döndürülen Değerler |
|
GetDictionaryItemHandle
PropertyPathHandle GetDictionaryItemHandle( PropertyPathHandle aParentHandle, uint16_t aDictionaryKey ) const
GetFirstChild
PropertyPathHandle GetFirstChild( PropertyPathHandle aParentHandle ) const
Belirli bir üst öğeyle ilişkilendirilmiş ilk alt herkese açık kullanıcı adını döndürür.
Ayrıntılar | |||
---|---|---|---|
Döndürülen Değerler |
|
GetHighestForwardVersion
SchemaVersion GetHighestForwardVersion( SchemaVersion aVersion ) const
Sağlanan bir veri şeması sürümü belirtildiğinde, bu işlem en yüksek ileriye dönük uyumlu şema sürümünü döndürür.
GetLowestCompatibleVersion
SchemaVersion GetLowestCompatibleVersion( SchemaVersion aVersion ) const
Sağlanan bir veri şeması sürümü belirtildiğinde, bu işlem minimum uyumlu şema sürümünü döndürür.
GetMap
const PropertyInfo * GetMap( PropertyPathHandle aHandle ) const
Belirli bir yol tanıtıcısını açıklayan PropertyInfo yapısına bir işaretçi döndürür.
Ayrıntılar | |||
---|---|---|---|
Döndürülen Değerler |
|
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şkilendirilmiş bir sonraki alt herkese açık kullanıcı adını döndürür.
Ayrıntılar | |||
---|---|---|---|
Döndürülen Değerler |
|
GetParent
PropertyPathHandle GetParent( PropertyPathHandle aHandle ) const
Belirli bir alt yol herkese açık kullanıcı adının üst işleyicisini döndürür.
Tutamaçtaki sözlük anahtarları, üst tutma yerinin aynı zamanda bir sözlük öğesi olduğu durumlarda korunur.
Ayrıntılar | |||
---|---|---|---|
Döndürülen Değerler |
|
GetProfileId
uint32_t GetProfileId( void ) const
İlişkilendirilmiş özelliğin profil kimliğini döndürür.
Ayrıntılar | |||
---|---|---|---|
Döndürülen Değerler |
|
GetRelativePathTags
WEAVE_ERROR GetRelativePathTags( const PropertyPathHandle aCandidateHandle, uint64_t *aTags, const uint32_t aTagsSize, uint32_t & aNumTags ) const
PropertyPathHandle'ı bir bağlam etiketi dizisine dönüştürür.
Ayrıntılar | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametreler |
|
||||||||
İadeler |
Başarılı olursa WEAVE_NO_ERROR; aTags tam yolu depolayamayacak kadar küçükse WEAVE_ERROR_NO_MEMORY.
|
GetTag
uint64_t GetTag( PropertyPathHandle aHandle ) const
Bir yol herkese açık kullanıcı adıyla ilişkilendirilen etiketi döndürür.
Bir sözlük öğesiyse bu işlev, ProfileTag değerini döndürür. Aksi takdirde, bağlam etiketleri döndürür.
Ayrıntılar | |||
---|---|---|---|
Döndürülen Değerler |
|
GetVersionIntersection
bool GetVersionIntersection( SchemaVersionRange & aVersion, SchemaVersionRange & aIntersection ) const
Bir sürüm aralığı belirleyerek bu işlev, bu ile bu şema motorunu destekleyen şemanın desteklediği öğeler 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 kesişim testinin sonuçlarını yansıtmak için iletilen aIntersection bağımsız değişkenini günceller.
IsDictionary
bool IsDictionary( PropertyPathHandle aHandle ) const
Herkese açık kullanıcı adı bir sözlükse (ve sözlükte değilse) true değerini döndürür. Aşağıdaki yönteme bakın.
Ayrıntılar | |||
---|---|---|---|
Döndürülen Değerler |
|
IsEphemeral
bool IsEphemeral( PropertyPathHandle aHandle ) const
IsInDictionary
bool IsInDictionary( PropertyPathHandle aHandle, PropertyPathHandle & aDictionaryItemHandle ) const
Tutma yeri bir sözlüğün (sözlük öğesi) içindeyse true değerini döndürür.
Herkese açık kullanıcı adında (aDictionaryItemHandle) bir kullanıcı, sözlükte en üstteki sözlük öğesi tutma yerini işaret edecek şekilde güncellenir.
Ayrıntılar | |||
---|---|---|---|
Döndürülen Değerler |
|
IsLeaf
bool IsLeaf( PropertyPathHandle aPropertyHandle ) const
Herkese açık kullanıcı adı, şema ağacındaki bir yaprak düğümüne işaret ediyorsa true değerini döndürür.
Ayrıntılar | |||
---|---|---|---|
Döndürülen Değerler |
|
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 | |||
---|---|---|---|
Döndürülen Değerler |
|
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 konumlandırılmış bir okuyucu verildiğinde ilgili etiketleri okuyun ve eşdeğer yol tanıtıcısını sağlayın.
Ayrıntılar | |||||
---|---|---|---|---|---|
Döndürülen Değerler |
|
MapPathToHandle
WEAVE_ERROR MapPathToHandle( const char *aPathString, PropertyPathHandle & aHandle ) const
Bir WDM yolunun dize gösterimiyle ilgili etiketler okunur ve eşdeğer yol tanıtıcısı sağlanır.
WDM yolu, aşağıdaki kurallar kullanılarak bir dize olarak gösterilir:
- etiketler
/
ile ayrılır - yolun başındaki bir
/
ile başlamalı ve sonunda eğik çizgi İÇERMEMELİDİR - WDM yolundaki sayısal etiketlerin tamsayıdan dizeye kodlama işlemi için standart C kitaplığı kullanılarak kodlanması ZORUNLUDUR. Yani, ondalık kodlama (varsayılan) başına 0 İÇERMEMELİDİR, onaltılık kodlama
0x
ile BAŞLAMALIDIR ve sekizlik kodlama, başında bir0
İÇERMELİDİR.
Ayrıntılar | |||||||
---|---|---|---|---|---|---|---|
Döndürülen Değerler |
|
MatchesProfileId
bool MatchesProfileId( uint32_t aProfileId ) const
profileId'de iletilen bilgi, şemada depolananla eşleşiyorsa true değerini döndürür.
Ayrıntılar | |||
---|---|---|---|
Döndürülen Değerler |
|
RetrieveData
WEAVE_ERROR RetrieveData( PropertyPathHandle aHandle, uint64_t aTagToWrite, nl::Weave::TLV::TLVWriter & aWriter, IGetDataDelegate *aDelegate, IDirtyPathCut *apDirtyPathCut ) const
Karşılık gelen veri öğesinde bir yol tutma yeri ve yazar konumu belirleyerek yaprak verilerini kaynaktan alın ve şemaya uygun bir şekilde yazar tarafından işaret edilen arabelleğe yazın.
Ayrıntılar | |||||
---|---|---|---|---|---|
Döndürülen Değerler |
|
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 verildiğinde, 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 havuzda depolayın.
Ayrıntılar | |||||
---|---|---|---|---|---|
Döndürülen Değerler |
|