nl::Weave::TLV

Weave TLV biçiminde kodlanmış verilerle çalışmaya ilişkin tanımlar.

Özet

Weave TLV, basit yapılandırılmış veriler için genelleştirilmiş bir kodlama yöntemidir. Yaygın olarak kullanılan JSON serileştirme biçimiyle birçok özelliği paylaşır ve kablo üzerinde çok daha kompakttır.

Sıralamalar

@71 enum
@73 enum
@74{
  AnonymousTag = kSpecialTagMarker | 0x00000000FFFFFFFFULL
}
enum
@75 enum
TLVCommonProfiles{
  kProfileIdNotSpecified = 0xFFFFFFFF
}
enum
TLVElementType enum
TLVFieldSize enum
TLVTagControl enum
TLVTagFields enum
TLVType enum
TLV öğesi türünü tanımlayan bir numaralandırma.

Değişkenler

kWeaveTLVCopyChunkSize = 16
const size_t
Bir okuyucu nesnesinden TLV öğesini yazara kopyalar.
sTagSizes = { 0, 1, 2, 4, 2, 4, 6, 8 }[]
const uint8_t

İşlevler

CommonTag(uint32_t tagNum)
uint64_t
Ortak bir profil TLV etiketinin API temsilini oluşturur.
ContextTag(uint8_t tagNum)
uint64_t
Bağlama özgü TLV etiketinin API temsilini oluşturur.
GetTLVFieldSize(uint8_t type)
TLVFieldSize
IsContextTag(uint64_t tag)
bool
Sağlanan etiket bağlama özgü bir etiketse true değerini döndürür.
IsProfileTag(uint64_t tag)
bool
Sağlanan etiket profile özel bir etiketse "true" değerini döndürür.
IsSpecialTag(uint64_t tag)
bool
IsValidTLVType(uint8_t type)
bool
Belirtilen TLV türü geçerliyse true değerini döndürür.
ProfileIdFromTag(uint64_t tag)
uint32_t
TLV etiketindeki profil kimliğini döndürür.
ProfileNumFromTag(uint64_t tag)
uint16_t
TLV etiketindeki profil numarasını döndürür.
ProfileTag(uint32_t profileId, uint32_t tagNum)
uint64_t
Bir profil kimliği ve etiket numarasından profile özgü TLV etiketinin API gösterimini oluşturur.
ProfileTag(uint16_t vendorId, uint16_t profileNum, uint32_t tagNum)
uint64_t
Tedarikçi firma kimliği, profil numarası ve etiket numarasından profile özgü bir TLV etiketinin API gösterimini oluşturur.
TLVFieldSizeToBytes(TLVFieldSize fieldSize)
uint8_t
TLVTypeHasLength(uint8_t type)
bool
Belirtilen TLV türü, ilişkili bir uzunluk alanının varlığını ifade ediyorsa true değerini döndürür.
TLVTypeHasValue(uint8_t type)
bool
Belirtilen TLV türü, ilişkili bir değer alanının varlığını ifade ediyorsa true değerini döndürür.
TLVTypeIsContainer(uint8_t type)
bool
Belirtilen TLV türü bir kapsayıcıysa true değerini döndürür.
TLVTypeIsString(uint8_t type)
bool
Belirtilen TLV türü bir UTF8 veya bayt dizesiyse true değerini döndürür.
TagNumFromTag(uint64_t tag)
uint32_t
TLV etiketindeki etiket numarasını döndürür.
VendorIdFromTag(uint64_t tag)
uint16_t
TLV etiketinden tedarikçi firma kimliğini döndürür.

Sınıflar

nl::Weave::TLV::CircularTLVReader
nl::Weave::TLV::CircularTLVWriter
nl::Weave::TLV::TLVReader

Weave TLV biçiminde kodlanmış veriler için bellek açısından verimli bir ayrıştırıcı sağlar.

nl::Weave::TLV::TLVUpdater

TLV kodlamasındaki öğeleri düzenlemek/eklemek/silmek için birleşik bir Okuyucu/Yazar arayüzü sunar.

nl::Weave::TLV::TLVWriter

Weave TLV biçiminde veri yazmak için bellek açısından verimli bir kodlayıcı sağlar.

nl::Weave::TLV::WeaveCircularTLVBuffer

WeaveCircularTLVBuffer nl::Weave::TLV::TLVWriter ve nl::Weave::TLVTLVReader için dairesel depolama alanı sağlar.

Ad alanları

nl::Weave::TLV::Debug

Bu ad alanı, hata ayıklamak ve Weave TLV'yi günlüğe kaydetmek için kullanılan türler ve arayüzler içerir.

nl::Weave::TLV::Utilities

Bu ad alanı, Weave TLV'yi yönetmek ve çalışmak için kullanılan türleri ve yardımcı program arayüzlerini içerir.

Sıralamalar

@71

 @71

@73

 @73

@74

 @74
Özellikler
AnonymousTag

Etiketi olmayan bir TLV öğesini belirten değer (ör.

anonim bir öğe) kullanır.

75'te

 @75

TLVCommonProfiles

 TLVCommonProfiles
Özellikler
kProfileIdNotSpecified

Bir değişkende veya üyede profil kimliği olmadığını belirtmek için kullanılır.

Bu, temelde WeaveProfiles.h dosyasında tanımlanan kWeaveProfile_NotSpecified ile aynıdır.

TLVElementType

 TLVElementType

TLVFieldSize

 TLVFieldSize

TLVTagControl

 TLVTagControl

TLVTagFields

 TLVTagFields

TLVType

 TLVType

TLV öğesi türünü tanımlayan bir numaralandırma.

Değişkenler

kWeaveTLVCopyChunkSize

const size_t kWeaveTLVCopyChunkSize = 16

Bir okuyucu nesnesinden TLV öğesini yazara kopyalar.

CopyElement() yöntemi, türü ve değeri bir TLVReader nesnesinden alınan yeni TLV öğesini kodlar. Yöntem çağrıldığında, sağlanan okuyucu nesnesinin kaynak TLV öğesine yerleştirilmesi beklenir. Yeni kodlanmış öğe, giriş kapsayıcısıyla aynı tür ve içeriğe sahip olur, ancak etiket belirtilen bağımsız değişkene ayarlanır. Sağlanan öğe bir TLV kapsayıcısıysa (yapı, dizi veya yol) kapsayıcının tüm içeriği kopyalanır.

Ayrıntılar
Parametreler
[in] tag
Kapsayıcı ile kodlanacak TLV etiketi veya kapsayıcının etiket olmadan kodlanması gerekiyorsa AnonymousTag. Etiket değerleri, ProfileTag(), ContextTag() veya CommonTag() etiket tanımı işlevlerinden biriyle oluşturulmalıdır.
[in] reader
Türü ve değerinin kopyalanması gereken önceden kodlanmış TLV öğesini tanımlayan bir TLVReader nesnesine referans.
Döndürülen Değerler
WEAVE_NO_ERROR
Yöntem başarılı olup olmadığı.
WEAVE_ERROR_INCORRECT_STATE
Sağlanan okuyucu herhangi bir öğenin üzerinde yer almıyorsa.
WEAVE_ERROR_TLV_CONTAINER_OPEN
Bir kapsayıcı yazar mevcut yazarda açılmış ancak henüz kapatılmamışsa.
WEAVE_ERROR_TLV_UNDERRUN
Sağlanan okuyucuyla ilişkilendirilmiş temel TLV kodlamasının zamanından önce bitip bitmediği.
WEAVE_ERROR_INVALID_TLV_ELEMENT
Sağlanan okuyucu, geçersiz veya desteklenmeyen bir TLV öğe türüyle karşılaşırsa.
WEAVE_ERROR_INVALID_TLV_TAG
Sağlanan okuyucu, geçersiz bağlamda bir TLV etiketiyle karşılaştıysa veya sağlanan etiket yeni kapsayıcının yazıldığı bağlamda geçersiz ya da uygunsuzsa.
WEAVE_ERROR_BUFFER_TOO_SMALL
Değerin yazılması, yazar başlatıldığında belirtilen maksimum bayt sayısı sınırını aşıyorsa.
WEAVE_ERROR_NO_MEMORY
Bellek yetersizliği nedeniyle çıkış arabelleği ayırma girişimi başarısız olduysa.
other
Yapılandırılmış GetNewBuffer() veya FinalizeBuffer() işlevleri ya da okuyucu nesnesiyle ilişkili GetNextBuffer() işlevi tarafından döndürülen diğer Weave veya platforma özgü hatalar.

sTagSizes

const uint8_t sTagSizes[] = { 0, 1, 2, 4, 2, 4, 6, 8 }

İşlevler

CommonTag

uint64_t CommonTag(
  uint32_t tagNum
)

Ortak bir profil TLV etiketinin API temsilini oluşturur.

Ayrıntılar
Parametreler
[in] tagNum
Etikete atanan ortak profil etiketi numarası.
İadeler
Etiketi temsil eden 64 bitlik bir tam sayı.

ContextTag

uint64_t ContextTag(
  uint8_t tagNum
)

Bağlama özgü TLV etiketinin API temsilini oluşturur.

Ayrıntılar
Parametreler
[in] tagNum
Etikete atanan bağlama özel etiket numarası.
İadeler
Etiketi temsil eden 64 bitlik bir tam sayı.

GetTLVFieldSize

TLVFieldSize GetTLVFieldSize(
  uint8_t type
)

IsContextTag

bool IsContextTag(
  uint64_t tag
)

Sağlanan etiket bağlama özgü bir etiketse true değerini döndürür.

IsProfileTag

bool IsProfileTag(
  uint64_t tag
)

Sağlanan etiket profile özel bir etiketse "true" değerini döndürür.

IsSpecialTag

bool IsSpecialTag(
  uint64_t tag
)

IsValidTLVType

bool IsValidTLVType(
  uint8_t type
)

Belirtilen TLV türü geçerliyse true değerini döndürür.

Ayrıntılar
İadeler
Belirtilen TLV türü geçerliyse true; aksi takdirde false.

ProfileIdFromTag

uint32_t ProfileIdFromTag(
  uint64_t tag
)

TLV etiketindeki profil kimliğini döndürür.

Ayrıntılar
Parametreler
[in] tag
Profile özgü bir TLV etiketinin API gösterimi.
İadeler
Profil kimliği.

ProfileNumFromTag

uint16_t ProfileNumFromTag(
  uint64_t tag
)

TLV etiketindeki profil numarasını döndürür.

Ayrıntılar
Parametreler
[in] tag
Profile özgü bir TLV etiketinin API gösterimi.
İadeler
İlişkilendirilmiş profil numarası.

ProfileTag

uint64_t ProfileTag(
  uint32_t profileId,
  uint32_t tagNum
)

Bir profil kimliği ve etiket numarasından profile özgü TLV etiketinin API gösterimini oluşturur.

Ayrıntılar
Parametreler
[in] profileId
Etiketin tanımlandığı profilin kimliği.
[in] tagNum
Etikete atanan profile özel etiket numarası.
İadeler
Etiketi temsil eden 64 bitlik bir tam sayı.

ProfileTag

uint64_t ProfileTag(
  uint16_t vendorId,
  uint16_t profileNum,
  uint32_t tagNum
)

Tedarikçi firma kimliği, profil numarası ve etiket numarasından profile özgü bir TLV etiketinin API gösterimini oluşturur.

Ayrıntılar
Parametreler
[in] vendorId
Etiketi tanımlayan satıcının kimliği.
[in] profileNum
Etiketin tanımlandığı profil için tedarikçi firma tarafından atanan numara.
[in] tagNum
Etikete atanan profile özel etiket numarası.
İadeler
Etiketi temsil eden 64 bitlik bir tam sayı.

TLVFieldSizeToBytes

uint8_t TLVFieldSizeToBytes(
  TLVFieldSize fieldSize
)

TLVTypeHasLength

bool TLVTypeHasLength(
  uint8_t type
)

Belirtilen TLV türü, ilişkili bir uzunluk alanının varlığını ifade ediyorsa true değerini döndürür.

Ayrıntılar
İadeler
true, belirtilen TLV türü, ilişkili bir uzunluk alanının varlığı anlamına geliyorsa; aksi takdirde false.

TLVTypeHasValue

bool TLVTypeHasValue(
  uint8_t type
)

Belirtilen TLV türü, ilişkili bir değer alanının varlığını ifade ediyorsa true değerini döndürür.

Ayrıntılar
İadeler
true, belirtilen TLV türü, ilişkili bir değer alanının varlığı anlamına geliyorsa; aksi takdirde false.

TLVTypeIsContainer

bool TLVTypeIsContainer(
  uint8_t type
)

Belirtilen TLV türü bir kapsayıcıysa true değerini döndürür.

Ayrıntılar
İadeler
Belirtilen TLV türü bir kapsayıcıysa true, aksi takdirde false.

TLVTypeIsString

bool TLVTypeIsString(
  uint8_t type
)

Belirtilen TLV türü bir UTF8 veya bayt dizesiyse true değerini döndürür.

Ayrıntılar
İadeler
Belirtilen TLV türü bir UTF8 veya bayt dizesiyse true; aksi takdirde false.

TagNumFromTag

uint32_t TagNumFromTag(
  uint64_t tag
)

TLV etiketindeki etiket numarasını döndürür.

Ayrıntılar
Parametreler
[in] tag
Profile veya bağlama özgü TLV etiketinin API gösterimi.
İadeler
İlişkilendirilmiş etiket numarası.
Şu kaynakları da inceleyin:
IsProfileTag() ve IsContextTag()

VendorIdFromTag

uint16_t VendorIdFromTag(
  uint64_t tag
)

TLV etiketinden tedarikçi firma kimliğini döndürür.

Ayrıntılar
Parametreler
[in] tag
Profile özgü bir TLV etiketinin API gösterimi.
İadeler
İlişkili tedarikçi firma kimliği.