nl::örgü::TLV

Weave TLV biçiminde kodlanmış verilerle çalışma tanımları.

Özet

Weave TLV, basit yapılandırılmış veriler için genel bir kodlama yöntemidir. Yaygın olarak kullanılan JSON serileştirme biçimiyle birçok özelliği paylaşırken kabloya kıyasla ç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 öğesinin türünü tanımlayan bir numaralandırma.

Değişkenler

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

İşlevler

CommonTag(uint32_t tagNum)
uint64_t
Ortak 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 etiketin true değeri, profile özgü bir etikettir.
IsSpecialTag(uint64_t tag)
bool
IsValidTLVType(uint8_t type)
bool
Belirtilen TLV türü geçerliyse true döndürür.
ProfileIdFromTag(uint64_t tag)
uint32_t
TLV etiketinden profil kimliğini döndürür.
ProfileNumFromTag(uint64_t tag)
uint16_t
TLV etiketinden 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 özel bir TLV etiketinin API temsilini oluşturur.
ProfileTag(uint16_t vendorId, uint16_t profileNum, uint32_t tagNum)
uint64_t
Bir satıcı kimliği, profil numarası ve etiket numarasından profile özel bir TLV etiketinin API temsilini 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ğeri 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ğeri 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 doğru değerini döndürür.
TagNumFromTag(uint64_t tag)
uint32_t
TLV etiketinden etiket numarasını döndürür.
VendorIdFromTag(uint64_t tag)
uint16_t
TLV etiketinden sağlayıcı kimliğini döndürür.

Sınıflar

nl::Weave::TLV::SirkülerTLVReader
nl::Weave::TLV::CircularTLVWriter
nl::Weave::TLV::TLVReader

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

nl::Weave::TLV::TLVUpdater

TLV kodlamasında öğeleri düzenlemek/eklemek/silmek için birleştirilmiş bir Okuyucu/Yazar arayüzü sağlar.

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::Hata ayıklama

Bu ad alanı, hata ayıklama ve günlük kaydı için Weave TLV için türler ve arayüzler içerir.

nl::Weave::TLV::İzlenceler

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

Sıralamalar

@71

 @71

@73

 @73

@74

 @74
Özellikler
AnonymousTag

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

anonim öğe).

@75

 @75

TLVCommonProfiles

 TLVCommonProfiles
Özellikler
kProfileIdNotSpecified

Bir değişken veya üye içinde profil kimliği bulunmadığını belirtmek için kullanılır.

Bu, temel olarak WeaveProfiles.h'de tanımlanan kWeaveProfile_NotSpecified ile aynıdır

TLVElementType

 TLVElementType

TLVFieldSize

 TLVFieldSize

TLVTagKontrol

 TLVTagControl

TLVTagAlanları

 TLVTagFields

TLVTürü

 TLVType

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

Değişkenler

kWeaveTLVCopyChunkSize

const size_t kWeaveTLVCopyChunkSize = 16

Bir TLV öğesini okuyucu nesnesinden yazara kopyalar.

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

Ayrıntılar
Parametreler
[in] tag
Kapsayıcıyla kodlanacak TLV etiketi veya kapsayıcının etiket olmadan kodlanması gerekiyorsa AnonymousTag. Etiket değerleri; ProfileTag(), ContextTag() veya CommonTag() etiket tanımlama işlevlerinden biriyle oluşturulmalıdır.
[in] reader
Türü ve değeri kopyalanması gereken önceden kodlanmış bir TLV öğesini tanımlayan bir TLVReader nesnesine başvuru.
Döndürülen Değerler
WEAVE_NO_ERROR
Yöntem başarılı olursa.
WEAVE_ERROR_INCORRECT_STATE
Sağlanan okuyucu bir öğenin üzerinde değilse.
WEAVE_ERROR_TLV_CONTAINER_OPEN
Kapsayıcı yazarı, geçerli yazarda açılıp henüz kapatılmadıysa.
WEAVE_ERROR_TLV_UNDERRUN
Sağlanan okuyucuyla ilişkili temel TLV kodlaması erken sona ererse.
WEAVE_ERROR_INVALID_TLV_ELEMENT
Sağlanan okuyucu geçersiz veya desteklenmeyen bir TLV öğe türüyle karşılaştıysa.
WEAVE_ERROR_INVALID_TLV_TAG
Sağlanan okuyucu, geçersiz bir bağlamda 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ğer yazıldığında yazar ilk başlatıldığında belirtilen maksimum bayt sayısı sınırı aşılacak.
WEAVE_ERROR_NO_MEMORY
Yetersiz bellek 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.

STagBoyutu

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

İşlevler

OrtakEtiket

uint64_t CommonTag(
  uint32_t tagNum
)

Ortak 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 tamsayı.

BağlamEtiketi

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 tamsayı.

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.

Profil Profili

bool IsProfileTag(
  uint64_t tag
)

Sağlanan etiketin true değeri, profile özgü bir etikettir.

ÖzelEtiket

bool IsSpecialTag(
  uint64_t tag
)

IsValidTLVType

bool IsValidTLVType(
  uint8_t type
)

Belirtilen TLV türü geçerliyse true 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 etiketinden profil kimliğini döndürür.

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

ProfileNumFromTag

uint16_t ProfileNumFromTag(
  uint64_t tag
)

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

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

ProfilEtiketi

uint64_t ProfileTag(
  uint32_t profileId,
  uint32_t tagNum
)

Bir profil kimliği ve etiket numarasından profile özel bir TLV etiketinin API temsilini oluşturur.

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

ProfilEtiketi

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

Bir satıcı kimliği, profil numarası ve etiket numarasından profile özel bir TLV etiketinin API temsilini oluşturur.

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

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ğeri döndürür.

Ayrıntılar
İadeler
Belirtilen TLV türü, ilişkili bir uzunluk alanının varlığını ifade ediyorsa true; 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ğeri döndürür.

Ayrıntılar
İadeler
Belirtilen TLV türü, ilişkili bir değer alanının varlığını ifade ediyorsa true; 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 doğru 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 etiketinden etiket numarasını döndürür.

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

Tedarikçi Kimliği Kimliği

uint16_t VendorIdFromTag(
  uint64_t tag
)

TLV etiketinden sağlayıcı kimliğini döndürür.

Ayrıntılar
Parametreler
[in] tag
Profile özgü bir TLV etiketinin API temsili.
İadeler
İlişkilendirilmiş satıcı kimliği.