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::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 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
PropertyPathHandle
En küçük ebeveyne verin.

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
int32_t
Ağacın derinliği

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

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
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şkilendirilmiş bir sonraki alt herkese açık kullanıcı adını döndürür.

Ayrıntılar
Döndürülen Değerler
PropertyPathHandle
Bir sonraki çocuğun herkese açık kullanıcı adı.

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
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
Döndürülen Değerler
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 etiketi dizisine dönüştürür.

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

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
bool

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
bool

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
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
Döndürülen Değerler
bool

MapHandleToPath

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

Yol tanıtıcısını TLV yoluna dönüştürün.

Ayrıntılar
Döndürülen Değerler
WEAVE_NO_ERROR
Başarılı olun.
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 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
WEAVE_NO_ERROR
Başarılı olun.
WEAVE_ERROR_TLV_TAG_NOT_FOUND
Hatalı biçimlendirilmiş/yanlış belirtilmiş yol nedeniyle eşleşen bir herkese açık kullanıcı adı bulunamadı.

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 bir 0 İÇERMELİDİR.

Ayrıntılar
Döndürülen Değerler
WEAVE_NO_ERROR
Başarılı olun.
WEAVE_ERROR_TLV_TAG_NOT_FOUND
Eşleşen bir herkese açık kullanıcı adı bulunamadı.
WEAVE_ERROR_INVALID_ARGUMENT
Bir yol dizesi hatalı biçimlendirilmişse

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
bool

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