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::Weave::Profiles::DataManagement_Current::TraitSchemaEngine::IGetDataDelegate
nl::Weave::Profiles::DataManagement_Current::TraitSchemaEngine::ISetDataDelegate

Yapılar

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

Ş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
PropertyPathHandle
En küçük ebeveynlere hitap edin.

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
int32_t
Ağaçtaki derinlik

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
PropertyPathHandle
İlk çocuğun herkese açık kullanıcı adı.

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

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
PropertyPathHandle
Sonraki çocuğun herkese açık kullanıcı adı.

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
PropertyPathHandle
Ebeveynin herkese açık kullanıcı adı.

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

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
[in] aCandidateHandle
Dönüştürülecek PropertyPathHandle'dır.
[in] aTags
Çıkış dizisinin işaretçisi.
[in] aTagsSize
Öğe sayısı olarak aTags dizisinin boyutu.
[out] aNumTags
aTags'e yazılan etiketlerin sayısı
İ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
uint64_t

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
bool

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
bool

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
bool

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
bool

MapHandleToPath

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

Yol tutma yerini TLV yoluna dönüştürün.

Ayrıntılar
Değerleri Döndür
WEAVE_NO_ERROR
Başarıya merhaba.
other
Herkese açık kullanıcı adı TLV yoluna dönüştürülemedi.

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
WEAVE_NO_ERROR
Başarıya merhaba.
WEAVE_ERROR_TLV_TAG_NOT_FOUND
Yanlış biçimlendirilmiş/yanlış belirtilmiş yol nedeniyle eşleşen herkese açık kullanıcı adı bulunamadı mı?

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şında 0 OLMALIDIR.

Ayrıntılar
Değerleri Döndür
WEAVE_NO_ERROR
Başarıya merhaba.
WEAVE_ERROR_TLV_TAG_NOT_FOUND
Eşleşen bir herkese açık kullanıcı adı bulunamadı.
WEAVE_ERROR_INVALID_ARGUMENT
Yol dizesi bozuksa

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
bool

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

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