nl::Weave::TLV

Definisi untuk menggunakan data yang dienkode dalam format Weave TLV.

Ringkasan

Weave TLV adalah metode encoding umum untuk data terstruktur sederhana. JSON memiliki banyak properti yang sama dengan format serialisasi JSON yang biasa digunakan, sekaligus menjadi jauh lebih ringkas dibandingkan kabel.

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 per konteks.
GetTLVFieldSize(uint8_t type)
TLVFieldSize
IsContextTag(uint64_t tag)
bool
Menampilkan true (benar) jika tag yang disediakan adalah tag khusus konteks.
IsProfileTag(uint64_t tag)
bool
Menampilkan nilai benar dari tag yang diberikan 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 untuk tag TLV khusus profil dari ID profil dan nomor tag.
ProfileTag(uint16_t vendorId, uint16_t profileNum, uint32_t tagNum)
uint64_t
Menghasilkan representasi API untuk tag TLV khusus 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 menyiratkan adanya kolom panjang yang terkait.
TLVTypeHasValue(uint8_t type)
bool
Menampilkan true (benar) jika jenis TLV yang ditentukan menyiratkan adanya kolom nilai terkait.
TLVTypeIsContainer(uint8_t type)
bool
Menampilkan true (benar) jika jenis TLV yang ditentukan adalah container.
TLVTypeIsString(uint8_t type)
bool
Menampilkan true (benar) 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::Weave::TLV::CircularTLVReader
nl::Weave::TLV::CircularTLVWriter
nl::Weave::TLV::TLVReader

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

nl::Weave::TLV::TLVUpdater

Menyediakan antarmuka Pembaca/Penulis terpadu untuk mengedit/menambahkan/menghapus elemen dalam encoding TLV.

nl::Weave::TLV::TLVWriter

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

nl::Weave::TLV::WeaveCircularTLVBuffer

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

Namespace

nl::Weave::TLV::Debug

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

nl::Weave::TLV::Utilities

Namespace ini mencakup jenis dan antarmuka utilitas untuk mengelola dan menggunakan 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.

Ini pada dasarnya sama dengan kWeaveProfile_NotSpecified yang ditetapkan di WeaveProfiles.h

TLVElementType

 TLVElementType

TLVFieldSize

 TLVFieldSize

TLVTagControl

 TLVTagControl

TLVTagFields

 TLVTagFields

TLVType

 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 akan diposisikan pada elemen TLV sumber. Elemen yang baru dienkode akan memiliki jenis dan konten yang sama seperti penampung input, tetapi 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 Pengembalian
WEAVE_NO_ERROR
Jika metode ini berhasil.
WEAVE_ERROR_INCORRECT_STATE
Jika pembaca yang disediakan tidak diposisikan pada elemen.
WEAVE_ERROR_TLV_CONTAINER_OPEN
Jika penulis container telah dibuka pada penulis saat ini dan belum ditutup.
WEAVE_ERROR_TLV_UNDERRUN
Jika encoding TLV pokok yang terkait dengan pembaca yang disediakan berakhir sebelum waktunya.
WEAVE_ERROR_INVALID_TLV_ELEMENT
Jika pembaca yang disediakan mengalami 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 sesuai dengan konteks tempat penampung baru ditulis.
WEAVE_ERROR_BUFFER_TOO_SMALL
Jika penulisan nilainya akan melebihi batas jumlah maksimum byte yang ditentukan saat penulis diinisialisasi.
WEAVE_ERROR_NO_MEMORY
Jika upaya untuk mengalokasikan buffering output gagal karena kekurangan memori.
other
Error Weave atau khusus platform lainnya yang ditampilkan oleh fungsi GetNewBuffer() atau FinalizeBuffer() yang dikonfigurasi, atau fungsi GetNextBuffer() yang terkait dengan objek pembaca.

sTagSizes

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

Fungsi

CommonTag

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.
Hasil
Bilangan bulat 64-bit yang mewakili tag.

ContextTag

uint64_t ContextTag(
  uint8_t tagNum
)

Menghasilkan representasi API untuk tag TLV spesifik per konteks.

Detail
Parameter
[in] tagNum
Nomor tag spesifik per konteks yang ditetapkan ke tag.
Hasil
Bilangan bulat 64-bit yang mewakili tag.

GetTLVFieldSize

TLVFieldSize GetTLVFieldSize(
  uint8_t type
)

IsContextTag

bool IsContextTag(
  uint64_t tag
)

Menampilkan true (benar) jika tag yang disediakan adalah tag khusus konteks.

IsProfileTag

bool IsProfileTag(
  uint64_t tag
)

Menampilkan nilai benar dari tag yang diberikan adalah tag khusus profil.

IsSpecialTag

bool IsSpecialTag(
  uint64_t tag
)

IsValidTLVType

bool IsValidTLVType(
  uint8_t type
)

Menampilkan true jika jenis TLV yang ditentukan valid.

Detail
Hasil
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 untuk tag TLV khusus profil.
Hasil
ID profil.

ProfileNumFromTag

uint16_t ProfileNumFromTag(
  uint64_t tag
)

Menampilkan nomor profil dari tag TLV.

Detail
Parameter
[in] tag
Representasi API untuk tag TLV khusus profil.
Hasil
Nomor profil terkait.

ProfileTag

uint64_t ProfileTag(
  uint32_t profileId,
  uint32_t tagNum
)

Menghasilkan representasi API untuk tag TLV khusus profil dari ID profil dan nomor tag.

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

ProfileTag

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

Menghasilkan representasi API untuk tag TLV khusus profil dari ID vendor, nomor profil, dan nomor tag.

Detail
Parameter
[in] vendorId
ID vendor yang menentukan tag.
[in] profileNum
Vendor yang menetapkan nomor untuk profil tempat tag ditentukan.
[in] tagNum
Nomor tag khusus profil yang ditetapkan ke tag.
Hasil
Bilangan bulat 64-bit yang mewakili tag.

TLVFieldSizeToBytes

uint8_t TLVFieldSizeToBytes(
  TLVFieldSize fieldSize
)

TLVTypeHasLength

bool TLVTypeHasLength(
  uint8_t type
)

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

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

TLVTypeHasValue

bool TLVTypeHasValue(
  uint8_t type
)

Menampilkan true (benar) jika jenis TLV yang ditentukan menyiratkan adanya kolom nilai terkait.

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

TLVTypeIsContainer

bool TLVTypeIsContainer(
  uint8_t type
)

Menampilkan true (benar) jika jenis TLV yang ditentukan adalah container.

Detail
Hasil
true jika jenis TLV yang ditentukan adalah container; jika tidak, false.

TLVTypeIsString

bool TLVTypeIsString(
  uint8_t type
)

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

Detail
Hasil
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 per profil atau spesifik per konteks.
Hasil
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 untuk tag TLV khusus profil.
Hasil
ID vendor terkait.