nl:: Weave:: Profiller: DataManagement_Current:: TraitSchemaEngine
#include <src/lib/profiles/data-management/Current/TraitData.h>
Şema motoru, belirli bir özellikle ilişkili şema bilgilerini alır ve bunları ayrıştırıp WDM makineleri tarafından kullanılabilecek bir forma dönüştürür.
Özet
Bu, PathHandles'dan WDM yollarına (veya tam tersi) dönüştürmeyi, şemanın kendisini yorumlama/sorgulama yöntemlerini ve tutma noktası verilen TLV'ye/verileri yazmaya yardımcı olacak yöntemleri içerir.
Şemanın kendisi, herhangi bir özellik için WDM yollarının/verilerinin genel olarak ayrıştırılmasına/birleştirilmesine olanak sağlayacak şekilde tablo biçiminde depolanır. Bu tablolar, nihai &&33;code-gen' çıktısı olacaktır. (Oluşturulan herhangi bir kod olmaması nedeniyle terimin kendisi yanıltıcı olabilir :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 tanıtıcısı dikkate alındığında, bu tutma yerlerinin her ikisi için üst görevi gören en düşük tutma yerini hesaplayın.
|
GetChildHandle(PropertyPathHandle aParentHandle, uint8_t aContextTag) const
|
|
GetDepth(PropertyPathHandle aHandle) const
|
int32_t
Belirli bir tutma yeri için şema ağacındaki derinliği hesaplayın.
|
GetDictionaryItemHandle(PropertyPathHandle aParentHandle, uint16_t aDictionaryKey) const
|
|
GetFirstChild(PropertyPathHandle aParentHandle) const
|
Belirli bir üst reklamverenle ilişkili ilk alt tutma yerini döndürür.
|
GetHighestForwardVersion(SchemaVersion aVersion) const
|
SchemaVersion
Sağlanan bir veri şeması sürümü göz önüne alındığında bu, ileriye dönük olarak uyumlu olan en yüksek şema sürümünü döndürür.
|
GetLowestCompatibleVersion(SchemaVersion aVersion) const
|
SchemaVersion
Sağlanan bir veri şeması sürümü dikkate alındığında bu, uyumlu minimum şema sürümünü döndürür.
|
GetMap(PropertyPathHandle aHandle) const
|
const PropertyInfo *
Belirli bir yol işleyicisini 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 öğeye tutma adı verildiğinde, belirli bir üst reklamverenle ilişkili bir sonraki alt tutma yerini döndürür.
|
GetParent(PropertyPathHandle aHandle) const
|
Belirli bir alt yol işleyicinin üst tutma yerini 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 öğesini bir içerik etiketi dizisine dönüştürür.
|
GetTag(PropertyPathHandle aHandle) const
|
uint64_t
Yol işleyiciyle ilişkili etiketi döndürür.
|
GetVersionIntersection(SchemaVersionRange & aVersion, SchemaVersionRange & aIntersection) const
|
bool
Bir sürüm aralığı göz önünde bulundurulduğunda bu işlev, söz konusu şema motorunu destekleyen şema ile bu şema arasında desteklenenler 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 true (doğru) değerini döndürür (kelime sözlüğünde değil, aşağıdaki yönteme bakın).
|
IsEphemeral(PropertyPathHandle aHandle) const
|
bool
|
IsInDictionary(PropertyPathHandle aHandle, PropertyPathHandle & aDictionaryItemHandle) const
|
bool
Herkese açık kullanıcı adı, bir sözlükte bulunuyorsa true (doğru) 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 ediyorsa true değeri döndürür.
|
IsNullable(PropertyPathHandle aHandle) const
|
bool
|
IsOptional(PropertyPathHandle aHandle) const
|
bool
|
IsParent(PropertyPathHandle aChildHandle, PropertyPathHandle aParentHandle) const
|
bool
Belirli bir tutma yerinin başka bir tutma yerinin alt öğesi olup olmadığını kontrol eder.
|
MapHandleToPath(PropertyPathHandle aHandle, nl::Weave::TLV::TLVWriter & aPathWriter) const
|
Yol işleyiciyi TLV yoluna dönüştürün.
|
MapPathToHandle(nl::Weave::TLV::TLVReader & aPathReader, PropertyPathHandle & aHandle) const
|
WDM yol öğesinin köküne yerleştirilen bir okuyucu göz önünde bulundurulduğunda ilgili etiketleri okutun ve eşdeğer yol işleyicisini sağlayın.
|
MapPathToHandle(const char *aPathString, PropertyPathHandle & aHandle) const
|
WDM yolunu belirten dize gösterimi ilgili etiketleri okur ve eşdeğer yol tutma yerini sağlar.
|
MatchesProfileId(uint32_t aProfileId) const
|
bool
ProfileId'de iletilen, ş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
|
Karşılık gelen veri öğesinde bir yol tutma yeri ve yazar konumu göz önünde bulundurulduğunda, yaprak verilerini kaynaktan alın ve yazarın şemaya uygun şekilde işaret ettiği 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 tutma yeri ve ilgili veri öğesine yerleştirilmiş bir okuyucu göz önünde bulundurularak, okuyucunun işaret ettiği veri arabelleğini bir yaprak veri öğesiyle karşılaşıldığında SetLeafData çağrısı çağırarak lavaboda depolayın.
|
Sınıflar |
|
---|---|
nl:: |
|
nl:: |
Struct |
|
---|---|
nl:: |
|
nl:: |
Şema bilgilerini barındıran ana şema yapısı. |
Herkese açık statik özellikler
kHandleTableOfseti
const uint32_t kHandleTableOffset = 2
Herkese açık özellikler
mSchema
const Schema mSchema
Herkese açık işlevler
FinderEn DüşükOrtakAncestor
PropertyPathHandle FindLowestCommonAncestor( PropertyPathHandle aHandle1, PropertyPathHandle aHandle2, PropertyPathHandle *aHandle1BranchChild, PropertyPathHandle *aHandle2BranchChild ) const
İki mülk tanıtıcısı dikkate alındığında, bu tutma yerlerinin her ikisi için üst görevi gören en düşük tutma yerini hesaplayın.
Ayrıca, iki tutma yerinin her birini içeren iki alt dalı (aynı olsalar bile) döndürün.
Ayrıntılar | |||
---|---|---|---|
Döndürülen Değerler |
|
GetChildHandle işlemi
PropertyPathHandle GetChildHandle( PropertyPathHandle aParentHandle, uint8_t aContextTag ) const
GetDepth
int32_t GetDepth( PropertyPathHandle aHandle ) const
Belirli bir tutma yeri 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
İlkİÇocuk
PropertyPathHandle GetFirstChild( PropertyPathHandle aParentHandle ) const
Belirli bir üst reklamverenle ilişkili ilk alt tutma yerini 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ü göz önüne alındığında bu, ileriye dönük olarak uyumlu olan en yüksek şema sürümünü döndürür.
GetLowestCompatibleVersion
SchemaVersion GetLowestCompatibleVersion( SchemaVersion aVersion ) const
Sağlanan bir veri şeması sürümü dikkate alındığında bu, uyumlu minimum şema sürümünü döndürür.
GetMap
const PropertyInfo * GetMap( PropertyPathHandle aHandle ) const
Belirli bir yol işleyicisini 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
SonrakiSonraki
PropertyPathHandle GetNextChild( PropertyPathHandle aParentId, PropertyPathHandle aChildHandle ) const
Mevcut bir alt öğeye tutma adı verildiğinde, belirli bir üst reklamverenle ilişkili bir sonraki alt tutma yerini döndürür.
Ayrıntılar | |||
---|---|---|---|
Döndürülen Değerler |
|
GetParent
PropertyPathHandle GetParent( PropertyPathHandle aHandle ) const
Belirli bir alt yol işleyicinin üst tutma yerini döndürür.
Üst tutma noktasındaki sözlük anahtarları, üst tutma yeri de bir sözlük öğesi olduğunda 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 |
|
GöreliYol Etiketleri
WEAVE_ERROR GetRelativePathTags( const PropertyPathHandle aCandidateHandle, uint64_t *aTags, const uint32_t aTagsSize, uint32_t & aNumTags ) const
PropertyPathHandle öğesini bir içerik etiketi dizisine dönüştürür.
Ayrıntılar | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametreler |
|
||||||||
İadeler |
Başarılı olması durumunda WEAVE_NO_ERROR; aTags tam yolu depolamak için çok küçükse WEAVE_ERROR_NO_MEMORY.
|
GetTag
uint64_t GetTag( PropertyPathHandle aHandle ) const
Yol işleyiciyle ilişkili etiketi döndürür.
Bir sözlük öğesiyse bu işlev, ProfileTag değerini döndürür. Aksi takdirde, içerik 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ığı göz önünde bulundurulduğunda bu işlev, söz konusu şema motorunu destekleyen şema ile bu şema arasında desteklenenler arasında bir uyumluluk kesişimi olup olmadığını kontrol eder.
Bir kesişim varsa işlev, doğru sonucu döndürür ve söz konusu kesişim testinin sonuçlarını yansıtmak için iletilen aIntersection bağımsız değişkenini günceller.
Sözlük
bool IsDictionary( PropertyPathHandle aHandle ) const
Herkese açık kullanıcı adı bir sözlükse true (doğru) değerini döndürür (kelime sözlüğünde değil, aşağıdaki yönteme bakın).
Ayrıntılar | |||
---|---|---|---|
Döndürülen Değerler |
|
Geçici
bool IsEphemeral( PropertyPathHandle aHandle ) const
Sözlük
bool IsInDictionary( PropertyPathHandle aHandle, PropertyPathHandle & aDictionaryItemHandle ) const
Herkese açık kullanıcı adı, bir sözlükte bulunuyorsa true (doğru) değerini döndürür.
Herkese açık kullanıcı adı (aDictionaryItemHandle) iletilmiş bir kullanıcı, sözlükteki en üstteki sözlük öğesi tanıtıcısına işaret edecek şekilde güncellenir.
Ayrıntılar | |||
---|---|---|---|
Döndürülen Değerler |
|
Yaprak
bool IsLeaf( PropertyPathHandle aPropertyHandle ) const
Herkese açık kullanıcı adı, şema ağacındaki bir yaprak düğüme işaret ediyorsa true değeri döndürür.
Ayrıntılar | |||
---|---|---|---|
Döndürülen Değerler |
|
İsimsiz
bool IsNullable( PropertyPathHandle aHandle ) const
İsteğe Bağlı
bool IsOptional( PropertyPathHandle aHandle ) const
Ebeveyn
bool IsParent( PropertyPathHandle aChildHandle, PropertyPathHandle aParentHandle ) const
Belirli bir tutma yerinin başka bir tutma yerinin alt öğesi olup olmadığını kontrol eder.
Bu dolaylı bir üst öğe olabilir.
Ayrıntılar | |||
---|---|---|---|
Döndürülen Değerler |
|
MapHandleToPath
WEAVE_ERROR MapHandleToPath( PropertyPathHandle aHandle, nl::Weave::TLV::TLVWriter & aPathWriter ) const
MapPathToHand
WEAVE_ERROR MapPathToHandle( nl::Weave::TLV::TLVReader & aPathReader, PropertyPathHandle & aHandle ) const
WDM yol öğesinin köküne yerleştirilen bir okuyucu göz önünde bulundurulduğunda ilgili etiketleri okutun ve eşdeğer yol işleyicisini sağlayın.
Ayrıntılar | |||||
---|---|---|---|---|---|
Döndürülen Değerler |
|
MapPathToHand
WEAVE_ERROR MapPathToHandle( const char *aPathString, PropertyPathHandle & aHandle ) const
WDM yolunu belirten dize gösterimi ilgili etiketleri okur ve eşdeğer yol tutma yerini sağlar.
WDM yolu, aşağıdaki kurallar kullanılarak bir dize olarak gösterilir:
- Etiketler
/
ile ayrılır - Yol, baştaki
/
ile başlamalı ve sonunda eğik çizgi içermemelidir - WDM yolundaki sayısal etiketler, tamsayı kodlaması için standart C kitaplığı kullanılarak kodlanmalıdır, yani ondalık kodlama (varsayılan) önde 0 içermemeli, onaltılık kodlama
0x
ile başlamalıdır OLMALI ve sekizli kodlama önde bir0
içermelidir.
Ayrıntılar | |||||||
---|---|---|---|---|---|---|---|
Döndürülen Değerler |
|
Eşleşme Profili Kimliği
bool MatchesProfileId( uint32_t aProfileId ) const
ProfileId'de iletilen, şemada depolananla eşleşirse true değerini döndürür.
Ayrıntılar | |||
---|---|---|---|
Döndürülen Değerler |
|
Verileri Al
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 göz önünde bulundurulduğunda, yaprak verilerini kaynaktan alın ve yazarın şemaya uygun şekilde işaret ettiği arabelleğe yazın.
Ayrıntılar | |||||
---|---|---|---|---|---|
Döndürülen Değerler |
|
GetUpdatableDictionaryData
WEAVE_ERROR RetrieveUpdatableDictionaryData( PropertyPathHandle aHandle, uint64_t aTagToWrite, nl::Weave::TLV::TLVWriter & aWriter, IGetDataDelegate *aDelegate, PropertyPathHandle & aPropertyPathHandleOfDictItemToStartFrom ) const
Mağaza Verileri
WEAVE_ERROR StoreData( PropertyPathHandle aHandle, nl::Weave::TLV::TLVReader & aReader, ISetDataDelegate *aDelegate, IPathFilter *aPathFilter ) const
Bir yol tutma yeri ve ilgili veri öğesine yerleştirilmiş bir okuyucu göz önünde bulundurularak, okuyucunun işaret ettiği veri arabelleğini bir yaprak veri öğesiyle karşılaşıldığında SetLeafData çağrısı çağırarak lavaboda depolayın.
Ayrıntılar | |||||
---|---|---|---|---|---|
Döndürülen Değerler |
|