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::Weave::Profiles::DataManagement_Current::TraitSchemaEngine::IGetDataTemsilci
nl::Weave::Profiles::DataManagement_Current::TraitSchemaEngine::ISetDataTemsilci

Struct

nl::Weave::Profiles::DataManagement_Current::TraitSchemaEngine::PropertyInfo
nl::Weave::Profiller:DataManagement_Current::TraitSchemaEngine::Schema

Ş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
PropertyPathHandle
En düşük üst öğeye git.

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
int32_t
Ağaç derinliği

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
PropertyPathHandle
İlk çocuğun tutma yeri.

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
PropertyInfo*

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
PropertyPathHandle
Sonraki çocuğu tutma yeri.

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
PropertyPathHandle
Üst öğe tutma yeri.

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
Trait
profil kimliği

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
[in] aCandidateHandle
Dönüştürülecek PropertyPathHandle.
[in] aTags
Çıkış dizisinin üzerine gelin.
[in] aTagsSize
ATags dizisinin öğe sayısı cinsinden boyutu.
[out] aNumTags
aTags'e yazılan etiket sayısı
İ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
uint64_t

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
bool

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
bool

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
bool

İ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
bool

MapHandleToPath

WEAVE_ERROR MapHandleToPath(
  PropertyPathHandle aHandle,
  nl::Weave::TLV::TLVWriter & aPathWriter
) const 

Yol işleyiciyi TLV yoluna dönüştürün.

Ayrıntılar
Döndürülen Değerler
WEAVE_NO_ERROR
Başarılı.
other
Herkese açık kullanıcı adı TLV yoluyla dönüştürülemedi

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
WEAVE_NO_ERROR
Başarılı.
WEAVE_ERROR_TLV_TAG_NOT_FOUND
Bozuk/hatalı bir şekilde belirtilen yol nedeniyle eşleşen bir kullanıcı bulunamazsa.

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 bir 0 içermelidir.

Ayrıntılar
Döndürülen Değerler
WEAVE_NO_ERROR
Başarılı.
WEAVE_ERROR_TLV_TAG_NOT_FOUND
Eşleşen bir tanıtıcı bulunamazsa.
WEAVE_ERROR_INVALID_ARGUMENT
Bir yol dizesi bozuksa

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
bool

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
WEAVE_NO_ERROR
Başarılı.
other
Veriler yazılırken hatalarla karşılaşıldı.

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
WEAVE_NO_ERROR
Başarılı.
other
Veriler ayrıştırılırken/işlenirken hatalarla karşılaşıldı.