nl::Menenun::TLV

Definisi untuk bekerja dengan data yang dienkode dalam format TLV Weave.

Ringkasan

Weave TLV adalah metode encoding umum untuk data terstruktur sederhana. Kode ini berbagi banyak properti dengan format serialisasi JSON yang biasa digunakan, sekaligus menjadi jauh lebih ringkas.

Enumerasi

@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
Enumerasi yang mengidentifikasi jenis elemen TLV.

Variabel

kWeaveTLVCopyChunkSize = 16
const size_t
Menyalin elemen TLV dari objek pembaca ke penulis.
sTagSizes = { 0, 1, 2, 4, 2, 4, 6, 8 }[]
const uint8_t

Fungsi

CommonTag(uint32_t tagNum)
uint64_t
Menghasilkan representasi API dari tag TLV profil umum.
ContextTag(uint8_t tagNum)
uint64_t
Menghasilkan representasi API untuk tag TLV spesifik konteks.
GetTLVFieldSize(uint8_t type)
TLVFieldSize
IsContextTag(uint64_t tag)
bool
Menampilkan nilai benar jika tag yang diberikan adalah tag spesifik konteks.
IsProfileTag(uint64_t tag)
bool
Menampilkan true dari tag yang disediakan adalah tag khusus profil.
IsSpecialTag(uint64_t tag)
bool
IsValidTLVType(uint8_t type)
bool
Menampilkan true jika jenis TLV yang ditentukan valid.
ProfileIdFromTag(uint64_t tag)
uint32_t
Menampilkan ID profil dari tag TLV.
ProfileNumFromTag(uint64_t tag)
uint16_t
Menampilkan nomor profil dari tag TLV.
ProfileTag(uint32_t profileId, uint32_t tagNum)
uint64_t
Menghasilkan representasi API dari tag TLV spesifik profil dari ID profil dan nomor tag.
ProfileTag(uint16_t vendorId, uint16_t profileNum, uint32_t tagNum)
uint64_t
Membuat representasi API dari tag TLV spesifik profil dari ID vendor, nomor profil, dan nomor tag.
TLVFieldSizeToBytes(TLVFieldSize fieldSize)
uint8_t
TLVTypeHasLength(uint8_t type)
bool
Menampilkan true jika jenis TLV yang ditentukan menunjukkan adanya kolom panjang yang terkait.
TLVTypeHasValue(uint8_t type)
bool
Menampilkan true jika jenis TLV yang ditentukan menunjukkan adanya kolom nilai yang terkait.
TLVTypeIsContainer(uint8_t type)
bool
Menampilkan true jika jenis TLV yang ditentukan adalah container.
TLVTypeIsString(uint8_t type)
bool
Menampilkan true jika jenis TLV yang ditentukan adalah string UTF8 atau byte.
TagNumFromTag(uint64_t tag)
uint32_t
Menampilkan nomor tag dari tag TLV.
VendorIdFromTag(uint64_t tag)
uint16_t
Menampilkan ID vendor dari tag TLV.

Class

nl::Tenun::TLV::CircularTLVReader
nl::Tenun::TLV::CircularTLVWriter
nl::Tenun::TLV::TLVReader

Menyediakan parser yang hemat memori untuk data yang dienkode dalam format TLV Weave.

nl::Tenun::TLV::TLVUpdater

Menyediakan antarmuka Reader/Writer terpadu untuk mengedit/menambahkan/menghapus elemen dalam encoding TLV.

nl::Tenun::TLV::TLVWriter

Menyediakan encoder yang hemat memori untuk menulis data dalam format TLV Weave.

nl::Tenun::TLV::WeaveCircularTLVBuffer

WeaveCircularTLVBuffer menyediakan penyimpanan melingkar untuk nl::Weave::TLV::TLVWriter dan nl::Weave::TLVTLVReader.

Namespace

nl::Tenun::TLV::Debug

Namespace ini mencakup jenis dan antarmuka untuk proses debug dan logging TLV Weave.

nl::Tenun::TLV::Utilitas

Namespace ini mencakup jenis dan antarmuka utilitas untuk mengelola dan bekerja dengan Weave TLV.

Enumerasi

@71

 @71

@73

 @73

@74

 @74
Properti
AnonymousTag

Nilai yang menandakan elemen TLV yang tidak memiliki tag (yaitu

elemen anonim).

@75

 @75

TLVCommonProfiles

 TLVCommonProfiles
Properti
kProfileIdNotSpecified

Digunakan untuk menunjukkan tidak adanya ID profil dalam variabel atau anggota.

Pada dasarnya sama dengan kWeaveProfile_NotSpecified yang ditentukan dalam WeaveProfiles.h

Jenis TLVElement

 TLVElementType

UkuranBidang TLV

 TLVFieldSize

KontrolTagTV

 TLVTagControl

TLVTagFields

 TLVTagFields

Jenis TLV

 TLVType

Enumerasi yang mengidentifikasi jenis elemen TLV.

Variabel

kWeaveTLVCopyChunkSize

const size_t kWeaveTLVCopyChunkSize = 16

Menyalin elemen TLV dari objek pembaca ke penulis.

Metode CopyElement() mengenkode elemen TLV baru yang jenis dan nilainya diambil dari objek TLVReader. Saat metode dipanggil, objek pembaca yang disediakan diharapkan diposisikan pada elemen TLV sumber. Elemen yang baru dienkode akan memiliki jenis dan konten yang sama dengan penampung input, namun tag akan ditetapkan ke argumen yang ditentukan. Jika elemen yang disediakan adalah penampung TLV (struktur, array, atau jalur), seluruh konten penampung akan disalin.

Detail
Parameter
[in] tag
Tag TLV yang akan dienkode dengan penampung, atau AnonymousTag jika penampung harus dienkode tanpa tag. Nilai tag harus dibuat dengan salah satu fungsi definisi tag ProfileTag(), ContextTag(), atau CommonTag().
[in] reader
Referensi ke objek TLVReader yang mengidentifikasi elemen TLV yang telah dienkode sebelumnya yang jenis dan nilainya harus disalin.
Nilai yang Ditampilkan
WEAVE_NO_ERROR
Jika metode berhasil.
WEAVE_ERROR_INCORRECT_STATE
Jika pembaca yang diberikan tidak diposisikan pada elemen.
WEAVE_ERROR_TLV_CONTAINER_OPEN
Jika penulis penampung telah dibuka pada penulis saat ini dan belum ditutup.
WEAVE_ERROR_TLV_UNDERRUN
Jika encoding TLV pokok yang terkait dengan pembaca yang diberikan berakhir sebelum waktunya.
WEAVE_ERROR_INVALID_TLV_ELEMENT
Jika pembaca yang disediakan menemukan jenis elemen TLV yang tidak valid atau tidak didukung.
WEAVE_ERROR_INVALID_TLV_TAG
Jika pembaca yang disediakan menemukan tag TLV dalam konteks yang tidak valid, atau jika tag yang diberikan tidak valid atau tidak pantas dalam konteks tempat penampung baru ditulis.
WEAVE_ERROR_BUFFER_TOO_SMALL
Jika menulis nilai akan melebihi batas jumlah byte maksimum yang ditentukan saat penulis diinisialisasi.
WEAVE_ERROR_NO_MEMORY
Jika upaya untuk mengalokasikan buffer output gagal karena kekurangan memori.
other
Error Weave atau khusus platform lainnya yang ditampilkan oleh fungsi GetNewBuffer() atau FinalizeBuffer() yang dikonfigurasi, atau oleh fungsi GetNextBuffer() yang terkait dengan objek pembaca.

UkuranTag

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

Fungsi

Tag Umum

uint64_t CommonTag(
  uint32_t tagNum
)

Menghasilkan representasi API dari tag TLV profil umum.

Detail
Parameter
[in] tagNum
Nomor tag profil umum yang ditetapkan ke tag.
Menampilkan
Bilangan bulat 64-bit yang mewakili tag.

TagKonteks

uint64_t ContextTag(
  uint8_t tagNum
)

Menghasilkan representasi API untuk tag TLV spesifik konteks.

Detail
Parameter
[in] tagNum
Nomor tag khusus konteks yang ditetapkan pada tag.
Menampilkan
Bilangan bulat 64-bit yang mewakili tag.

GetTLVFieldSize

TLVFieldSize GetTLVFieldSize(
  uint8_t type
)

IsContextTag

bool IsContextTag(
  uint64_t tag
)

Menampilkan nilai benar jika tag yang diberikan adalah tag spesifik konteks.

IsProfileTag

bool IsProfileTag(
  uint64_t tag
)

Menampilkan true dari tag yang disediakan adalah tag khusus profil.

IsisTag

bool IsSpecialTag(
  uint64_t tag
)

IsValidTLVType

bool IsValidTLVType(
  uint8_t type
)

Menampilkan true jika jenis TLV yang ditentukan valid.

Detail
Menampilkan
true jika jenis TLV yang ditentukan valid; jika tidak, false.

ProfileIdFromTag

uint32_t ProfileIdFromTag(
  uint64_t tag
)

Menampilkan ID profil dari tag TLV.

Detail
Parameter
[in] tag
Representasi API dari tag TLV spesifik profil.
Menampilkan
ID profil.

ProfileNumFromTag

uint16_t ProfileNumFromTag(
  uint64_t tag
)

Menampilkan nomor profil dari tag TLV.

Detail
Parameter
[in] tag
Representasi API dari tag TLV spesifik profil.
Menampilkan
Nomor profil yang terkait.

TagProfil

uint64_t ProfileTag(
  uint32_t profileId,
  uint32_t tagNum
)

Menghasilkan representasi API dari tag TLV spesifik profil dari ID profil dan nomor tag.

Detail
Parameter
[in] profileId
ID profil tempat tag didefinisikan.
[in] tagNum
Nomor tag khusus profil yang ditetapkan ke tag.
Menampilkan
Bilangan bulat 64-bit yang mewakili tag.

TagProfil

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

Membuat representasi API dari tag TLV spesifik profil dari ID vendor, nomor profil, dan nomor tag.

Detail
Parameter
[in] vendorId
ID vendor yang menentukan tag.
[in] profileNum
Nomor yang ditetapkan oleh vendor untuk profil tempat tag ditetapkan.
[in] tagNum
Nomor tag khusus profil yang ditetapkan ke tag.
Menampilkan
Bilangan bulat 64-bit yang mewakili tag.

TLVFieldSizeToBytes

uint8_t TLVFieldSizeToBytes(
  TLVFieldSize fieldSize
)

TLVTypeMemiliki Panjang

bool TLVTypeHasLength(
  uint8_t type
)

Menampilkan true jika jenis TLV yang ditentukan menunjukkan adanya kolom panjang yang terkait.

Detail
Menampilkan
true jika jenis TLV yang ditentukan menyiratkan adanya kolom panjang yang terkait; jika tidak, false.

TLVTypeHashValue

bool TLVTypeHasValue(
  uint8_t type
)

Menampilkan true jika jenis TLV yang ditentukan menunjukkan adanya kolom nilai yang terkait.

Detail
Menampilkan
true jika jenis TLV yang ditentukan menyiratkan adanya kolom nilai terkait; jika tidak, false.

TLVTypeIsContainer

bool TLVTypeIsContainer(
  uint8_t type
)

Menampilkan true jika jenis TLV yang ditentukan adalah container.

Detail
Menampilkan
true jika jenis TLV yang ditentukan adalah penampung; jika tidak, false.

TLVTypeIsString

bool TLVTypeIsString(
  uint8_t type
)

Menampilkan true jika jenis TLV yang ditentukan adalah string UTF8 atau byte.

Detail
Menampilkan
true jika jenis TLV yang ditentukan adalah string UTF8 atau byte; jika tidak, false.

TagNumFromTag

uint32_t TagNumFromTag(
  uint64_t tag
)

Menampilkan nomor tag dari tag TLV.

Detail
Parameter
[in] tag
Representasi API dari tag TLV spesifik profil atau khusus konteks.
Menampilkan
Nomor tag terkait.
Lihat juga:
IsProfileTag() dan IsContextTag()

VendorIdFromTag

uint16_t VendorIdFromTag(
  uint64_t tag
)

Menampilkan ID vendor dari tag TLV.

Detail
Parameter
[in] tag
Representasi API dari tag TLV spesifik profil.
Menampilkan
ID vendor terkait.