nl::Weave::TLV::TLVReader

#include <src/lib/core/WeaveTLV.h>

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

Ringkasan

TLVReader mengimplementasikan parser “gaya tarik” khusus maju untuk data TLV Weave. Objek TLVReader beroperasi sebagai kursor yang dapat digunakan untuk melakukan iterasi pada urutan elemen TLV dan menafsirkan kontennya. Jika diposisikan pada elemen, aplikasi dapat melakukan panggilan ke metode Get() pembaca untuk mengkueri jenis dan tag elemen saat ini, dan untuk mengekstrak nilai terkait. Metode Next() pembaca digunakan untuk melanjutkan dari satu elemen ke elemen.

Objek TLVReader selalu diposisikan sebelum, pada, atau setelah elemen TLV. Saat pertama kali diinisialisasi, TLVReader diposisikan tepat sebelum elemen pertama encoding. Untuk mulai membaca, aplikasi harus melakukan panggilan awal ke metode Next() untuk memosisikan pembaca pada elemen pertama. Saat elemen penampung ditemukan, baik struktur, array, maupun jalur, metode OpenContainer() atau EnterContainer() dapat digunakan untuk melakukan iterasi melalui konten penampung.

Saat pembaca mencapai akhir encoding TLV, atau elemen terakhir dalam container, pembaca akan memberi sinyal ke aplikasi dengan menampilkan error WEAVE_END_OF_TLV dari metode Next(). Pembaca akan terus menampilkan WEAVE_END_OF_TLV hingga diinisialisasi ulang, atau penampung saat ini dikeluarkan (melalui CloseContainer() / ExitContainer()).

Objek TLVReader dapat mengurai data secara langsung dari buffer input tetap, atau dari rantai satu atau beberapa PacketBuffer. Selain itu, aplikasi dapat menyediakan fungsi GetNextBuffer untuk memberikan data feed ke pembaca dari sumber arbitrer, misalnya soket atau porta serial.

Inheritance

Subclass yang Dikenal Langsung:
  nl::Weave::Profiles::DataManagement_Current::CircularEventReader
  nl::Weave::TLV::CircularTLVReader

Jenis publik

GetNextBufferFunct)(TLVReader &reader, uintptr_t &bufHandle, const uint8_t *&bufStart, uint32_t &bufLen) WEAVE_ERROR(*
Fungsi yang dapat digunakan untuk mengambil data TLV tambahan untuk diurai.

Atribut publik

AppData
void *
Bidang pointer yang dapat digunakan untuk data khusus aplikasi.
GetNextBuffer
Pointer ke fungsi yang akan menghasilkan data input untuk objek TLVReader.
ImplicitProfileId
uint32_t
ID profil yang akan digunakan untuk tag profil yang dienkode dalam bentuk implisit.

Atribut yang dilindungi

mBufEnd
const uint8_t *
mBufHandle
uintptr_t
mContainerType
mControlByte
uint16_t
mElemLenOrVal
uint64_t
mElemTag
uint64_t
mLenRead
uint32_t
mMaxLen
uint32_t
mReadPoint
const uint8_t *

Fungsi publik

CloseContainer(TLVReader & containerReader)
Menyelesaikan pembacaan container TLV setelah panggilan ke OpenContainer().
DupBytes(uint8_t *& buf, uint32_t & dataLen)
Mengalokasikan dan menampilkan buffer yang berisi nilai byte atau string UTF8 saat ini.
DupString(char *& buf)
Mengalokasikan dan menampilkan buffer yang berisi nilai dihentikan null dari byte atau string UTF8 saat ini.
EnterContainer(TLVType & outerContainerType)
Menyiapkan objek TLVReader untuk membaca anggota elemen container TLV.
ExitContainer(TLVType outerContainerType)
Menyelesaikan pembacaan container TLV dan menyiapkan objek TLVReader untuk membaca elemen setelah container.
Get(bool & v)
Mendapatkan nilai elemen saat ini sebagai jenis bool.
Get(int8_t & v)
Mendapatkan nilai elemen saat ini sebagai bilangan bulat dengan tanda tangan 8-bit.
Get(int16_t & v)
Mendapatkan nilai elemen saat ini sebagai bilangan bulat 16-bit yang ditandatangani.
Get(int32_t & v)
Mendapatkan nilai elemen saat ini sebagai bilangan bulat yang ditandatangani 32-bit.
Get(int64_t & v)
Mendapatkan nilai elemen saat ini sebagai bilangan bulat yang ditandatangani 64-bit.
Get(uint8_t & v)
Mendapatkan nilai elemen saat ini sebagai bilangan bulat tanpa tanda tangan 8-bit.
Get(uint16_t & v)
Mendapatkan nilai elemen saat ini sebagai bilangan bulat tanpa tanda tangan 16-bit.
Get(uint32_t & v)
Mendapatkan nilai elemen saat ini sebagai bilangan bulat tanpa tanda tangan 32-bit.
Get(uint64_t & v)
Mendapatkan nilai elemen saat ini sebagai bilangan bulat tanpa tanda tangan 64-bit.
Get(float & v)
Get(double & v)
Mendapatkan nilai elemen saat ini sebagai bilangan floating point presisi ganda.
GetBufHandle(void) const
uintptr_t
GetBytes(uint8_t *buf, uint32_t bufSize)
Dapatkan nilai elemen string UTF8 atau byte saat ini.
GetContainerType(void) const
Menampilkan jenis container tempat TLVReader saat ini dibaca.
GetControlByte(void) const
uint16_t
Menampilkan byte kontrol yang terkait dengan elemen TLV saat ini.
GetDataPtr(const uint8_t *& data)
Mendapatkan pointer ke byte yang dienkode awal dari byte TLV atau elemen string UTF8.
GetLength(void) const
uint32_t
Menampilkan panjang data yang terkait dengan elemen TLV saat ini.
GetLengthRead(void) const
uint32_t
Menampilkan jumlah total byte yang dibaca sejak pembaca diinisialisasi.
GetReadPoint(void) const
const uint8_t *
Mendapatkan titik di buffer input yang mendasarinya yang sesuai dengan posisi pembaca saat ini.
GetRemainingLength(void) const
uint32_t
Menampilkan jumlah total byte yang dapat dibaca hingga panjang baca maksimum tercapai.
GetString(char *buf, uint32_t bufSize)
Mendapatkan nilai elemen string UTF8 atau byte saat ini sebagai string null yang dihentikan.
GetTag(void) const
uint64_t
Menampilkan tag yang terkait dengan elemen TLV saat ini.
GetType(void) const
Menampilkan jenis elemen TLV saat ini.
Init(const TLVReader & aReader)
void
Melakukan inisialisasi objek TLVReader dari objek TLVReader lain.
Init(const uint8_t *data, uint32_t dataLen)
void
Melakukan inisialisasi objek TLVReader untuk membaca dari buffer input tunggal.
Init(PacketBuffer *buf, uint32_t maxLen)
void
Melakukan inisialisasi objek TLVReader untuk membaca dari satu PacketBuffer.
Init(PacketBuffer *buf, uint32_t maxLen, bool allowDiscontiguousBuffers)
void
Melakukan inisialisasi objek TLVReader untuk membaca dari satu atau beberapa PacketBuffer.
Next(void)
Memajukan objek TLVReader ke elemen TLV berikutnya yang akan dibaca.
Next(TLVType expectedType, uint64_t expectedTag)
Memajukan objek TLVReader ke elemen TLV berikutnya yang akan dibaca, dengan menyatakan jenis dan tag elemen baru.
OpenContainer(TLVReader & containerReader)
Melakukan inisialisasi objek TLVReader baru untuk membaca anggota elemen container TLV.
Skip(void)
Memajukan objek TLVReader tepat setelah elemen TLV saat ini.
VerifyEndOfContainer(void)
Memverifikasi bahwa objek TVLReader berada di akhir container TLV.

Fungsi yang dilindungi

ClearElementState(void)
void
Hapus status TLVReader.
ElementType(void) const
TLVElementType
Ini adalah metode pribadi yang menampilkan TLVElementType dari mControlByte.
EnsureData(WEAVE_ERROR noDataErr)
GetElementHeadLength(uint8_t & elemHeadBytes) const
Ini adalah metode pribadi yang digunakan untuk menghitung panjang kepala elemen TLV.
IsContainerOpen(void) const
bool
ReadData(uint8_t *buf, uint32_t len)
ReadElement(void)
ReadTag(TLVTagControl tagControl, const uint8_t *& p)
uint64_t
SetContainerOpen(bool aContainerOpen)
void
SkipData(void)
Lewati data apa pun yang terdapat dalam TLV saat ini dengan membacanya tanpa buffer tujuan.
SkipToEndOfContainer(void)
VerifyElement(void)

Fungsi statis yang dilindungi

FailGetNextBuffer(TLVReader & reader, uintptr_t & bufHandle, const uint8_t *& bufStart, uint32_t & bufLen)
GetNextPacketBuffer(TLVReader & reader, uintptr_t & bufHandle, const uint8_t *& bufStart, uint32_t & bufLen)

Jenis publik

GetNextBufferFunct

WEAVE_ERROR(* GetNextBufferFunct)(TLVReader &reader, uintptr_t &bufHandle, const uint8_t *&bufStart, uint32_t &bufLen)

Fungsi yang dapat digunakan untuk mengambil data TLV tambahan untuk diurai.

Fungsi jenis ini digunakan untuk memasukkan data input ke TLVReader. Saat dipanggil, fungsi tersebut diharapkan menghasilkan data tambahan bagi pembaca untuk mengurai atau memberi sinyal kepada pembaca bahwa tidak ada lagi data yang tersedia.

Detail
Parameter
[in] reader
Referensi ke objek TLVReader yang meminta data input.
[in,out] bufHandle
Referensi ke nilai uintptr_t yang dapat digunakan fungsi untuk menyimpan data konteks antar panggilan. Nilai ini diinisialisasi ke 0 sebelum panggilan pertama.
[in,out] bufStart
Referensi ke {i>data pointer<i}. Saat masuk ke fungsi, bufStart mengarah ke satu byte yang melebihi byte data TLV terakhir yang digunakan oleh pembaca. Saat keluar, bufStart diharapkan mengarah ke byte pertama data TLV baru yang akan diurai. Nilai pointer baru dapat berada dalam buffer yang sama dengan data yang digunakan sebelumnya, atau dapat mengarah ke buffer yang sama sekali baru.
[out] bufLen
Referensi ke bilangan bulat tanpa tanda tangan yang harus ditetapkan oleh fungsi ke jumlah byte data TLV yang ditampilkan. Jika akhir data TLV input telah tercapai, fungsi harus menetapkan nilai ini ke 0.
Nilai yang Ditampilkan
WEAVE_NO_ERROR
Jika fungsi berhasil menghasilkan lebih banyak data TLV, atau akhir data input tercapai (dalam kasus ini bufLen harus ditetapkan ke 0).
other
Kode error khusus platform atau Weave lainnya yang menunjukkan bahwa terjadi error yang mencegah fungsi menghasilkan data yang diminta.

Atribut publik

AppData

void * AppData

Bidang pointer yang dapat digunakan untuk data khusus aplikasi.

GetNextBuffer

GetNextBufferFunct GetNextBuffer

Pointer ke fungsi yang akan menghasilkan data input untuk objek TLVReader.

Jika disetel ke NULL (nilai default), pembaca akan berasumsi bahwa tidak ada data input lebih lanjut yang tersedia.

GetNextBuffer dapat disetel oleh aplikasi kapan saja, tetapi biasanya disetel saat pembaca diinisialisasi.

Lihat definisi jenis GetNextBufferFunct untuk informasi tambahan tentang cara menerapkan fungsi GetNextBuffer.

ImplicitProfileId

uint32_t ImplicitProfileId

ID profil yang akan digunakan untuk tag profil yang dienkode dalam bentuk implisit.

Saat pembaca menemukan tag khusus profil yang telah dienkode dalam bentuk implisit, pembaca akan menggunakan nilai properti ImplicitProfileId sebagai ID profil yang diasumsikan untuk tag tersebut.

Secara default, properti ImplicitProfileId ditetapkan ke kProfileIdNotSpecified. Saat mendekode TLV yang berisi tag yang dienkode secara implisit, aplikasi harus menetapkan ImplicitProfileId sebelum membaca elemen TLV yang memiliki tag tersebut. ID profil yang sesuai biasanya bergantung pada konteks aplikasi atau protokol yang diucapkan.

Jika ditemukan tag yang dienkode secara implisit saat ImplicitProfileId ditetapkan ke kProfileIdNotSpecified, pembaca akan menampilkan error WEAVE_ERROR_UNKNOWN_IMPLICIT_TLV_TAG.

Atribut yang dilindungi

mBufEnd

const uint8_t * mBufEnd

mBufHandle

uintptr_t mBufHandle

mContainerType

TLVType mContainerType

mControlByte

uint16_t mControlByte

mElemLenOrVal

uint64_t mElemLenOrVal

mElemTag

uint64_t mElemTag

mLenRead

uint32_t mLenRead

mMaxLen

uint32_t mMaxLen

mReadPoint

const uint8_t * mReadPoint

Fungsi publik

CloseContainer

WEAVE_ERROR CloseContainer(
  TLVReader & containerReader
)

Menyelesaikan pembacaan container TLV setelah panggilan ke OpenContainer().

Metode CloseContainer() memulihkan status objek TLVReader induk setelah panggilan ke OpenContainer(). Untuk setiap panggilan ke OpenContainer(), aplikasi harus melakukan panggilan yang sesuai ke CloseContainer(), dengan meneruskan referensi ke pembaca container yang sama ke kedua metode.

Saat CloseContainer() ditampilkan, pembaca induk diposisikan tepat sebelum elemen pertama yang mengikuti penampung. Dari titik ini aplikasi dapat menggunakan metode Next() untuk maju melalui elemen yang tersisa.

Aplikasi dapat memanggil CloseContainer() tutup pada pembaca induk kapan saja, terlepas dari apakah semua elemen dalam penampung pokok telah dibaca atau tidak. Setelah CloseContainer() dipanggil, aplikasi harus menganggap pembaca container sebagai 'diinisialisasi' dan tidak boleh menggunakannya lebih lanjut tanpa melakukan inisialisasi ulang.

Detail
Parameter
[in] containerReader
Referensi ke objek TLVReader yang disediakan ke metode OpenContainer().
Nilai yang Ditampilkan
WEAVE_NO_ERROR
Jika metode ini berhasil.
WEAVE_ERROR_INCORRECT_STATE
Jika OpenContainer() belum dipanggil pada pembaca, atau jika pembaca container tidak cocok dengan yang diteruskan ke metode OpenContainer().
WEAVE_ERROR_TLV_UNDERRUN
Jika encoding TLV yang mendasarinya berakhir sebelum waktunya.
WEAVE_ERROR_INVALID_TLV_ELEMENT
Jika pembaca mengalami jenis elemen TLV yang tidak valid atau tidak didukung.
WEAVE_ERROR_INVALID_TLV_TAG
Jika pembaca menemukan tag TLV dalam konteks yang tidak valid.
other
Kode error platform atau Weave lainnya yang ditampilkan oleh fungsi GetNextBuffer() yang dikonfigurasi. Hanya memungkinkan jika GetNextBuffer adalah non-NULL.

DupBytes

WEAVE_ERROR DupBytes(
  uint8_t *& buf,
  uint32_t & dataLen
)

Mengalokasikan dan menampilkan buffer yang berisi nilai byte atau string UTF8 saat ini.

Metode ini membuat buffer dan menampilkan salinan data yang terkait dengan elemen string byte atau UTF-8 pada posisi saat ini. Memori untuk buffer diperoleh dengan malloc() dan harus dibebaskan dengan free() oleh pemanggil jika tidak diperlukan lagi.

Detail
Parameter
[out] buf
Referensi ke pointer tempat buffer dataLen byte yang dialokasikan jika berhasil.
[out] dataLen
Referensi ke penyimpanan untuk ukuran, dalam byte, buf saat berhasil.
Nilai yang Ditampilkan
WEAVE_NO_ERROR
Jika metode ini berhasil.
WEAVE_ERROR_WRONG_TLV_TYPE
Jika elemen saat ini bukan byte TLV atau string UTF8, atau pembaca tidak diposisikan pada elemen.
WEAVE_ERROR_NO_MEMORY
Jika memori tidak dapat dialokasikan untuk buffer output.
WEAVE_ERROR_TLV_UNDERRUN
Jika encoding TLV yang mendasarinya berakhir sebelum waktunya.
WEAVE_ERROR_UNSUPPORTED_WEAVE_FEATURE
Jika platform target tidak mendukung malloc() dan free().
other
Kode error platform atau Weave lainnya yang ditampilkan oleh fungsi GetNextBuffer() yang dikonfigurasi. Hanya memungkinkan jika GetNextBuffer adalah non-NULL.

DupString

WEAVE_ERROR DupString(
  char *& buf
)

Mengalokasikan dan menampilkan buffer yang berisi nilai dihentikan null dari byte atau string UTF8 saat ini.

Metode ini membuat buffer dan menampilkan salinan data yang dihentikan null yang terkait dengan elemen string byte atau UTF-8 pada posisi saat ini. Memori untuk buffer diperoleh dengan malloc() dan harus dibebaskan dengan free() oleh pemanggil jika tidak diperlukan lagi.

Detail
Parameter
[out] buf
Referensi ke pointer tempat buffer dialokasikan heap akan ditetapkan jika berhasil.
Nilai yang Ditampilkan
WEAVE_NO_ERROR
Jika metode ini berhasil.
WEAVE_ERROR_WRONG_TLV_TYPE
Jika elemen saat ini bukan byte TLV atau string UTF8, atau pembaca tidak diposisikan pada elemen.
WEAVE_ERROR_NO_MEMORY
Jika memori tidak dapat dialokasikan untuk buffer output.
WEAVE_ERROR_TLV_UNDERRUN
Jika encoding TLV yang mendasarinya berakhir sebelum waktunya.
WEAVE_ERROR_UNSUPPORTED_WEAVE_FEATURE
Jika platform target tidak mendukung malloc() dan free().
other
Kode error platform atau Weave lainnya yang ditampilkan oleh fungsi GetNextBuffer() yang dikonfigurasi. Hanya memungkinkan jika GetNextBuffer adalah non-NULL.

EnterContainer

WEAVE_ERROR EnterContainer(
  TLVType & outerContainerType
)

Menyiapkan objek TLVReader untuk membaca anggota elemen container TLV.

Metode EnterContainer() menyiapkan objek TLVReader saat ini untuk mulai membaca elemen anggota penampung TLV (struktur, array, atau jalur). Untuk setiap panggilan ke aplikasi EnterContainer(), Anda harus melakukan panggilan yang sesuai ke ExitContainer().

Saat EnterContainer() dipanggil, objek TLVReader harus diposisikan pada elemen container agar dapat dibaca. Metode ini mengambil referensi ke nilai TLVType sebagai argumen yang akan digunakan untuk menyimpan konteks pembaca saat membaca container.

Saat metode EnterContainer() ditampilkan, pembaca diposisikan tepat sebelum anggota pertama penampung. Memanggil Next() berulang kali akan memajukan pembaca melalui anggota koleksi hingga akhir tercapai, lalu pembaca akan menampilkan WEAVE_END_OF_TLV.

Setelah selesai membaca penampung, aplikasi dapat terus membaca elemen setelah penampung dengan memanggil metode ExitContainer().

Detail
Parameter
[out] outerContainerType
Referensi ke nilai TLVType yang akan menerima konteks pembaca.
Nilai yang Ditampilkan
WEAVE_NO_ERROR
Jika metode ini berhasil.
WEAVE_ERROR_INCORRECT_STATE
Jika elemen saat ini tidak diposisikan pada elemen container.

ExitContainer

WEAVE_ERROR ExitContainer(
  TLVType outerContainerType
)

Menyelesaikan pembacaan container TLV dan menyiapkan objek TLVReader untuk membaca elemen setelah container.

Metode ExitContainer() memulihkan status objek TLVReader setelah panggilan ke EnterContainer(). Untuk setiap panggilan ke EnterContainer(), aplikasi harus melakukan panggilan yang sesuai ke ExitContainer(), dengan meneruskan nilai konteks yang ditampilkan oleh metode EnterContainer().

Saat ExitContainer() ditampilkan, pembaca diposisikan tepat sebelum elemen pertama yang mengikuti penampung. Dari titik ini aplikasi dapat menggunakan metode Next() untuk maju melalui elemen yang tersisa.

Setelah EnterContainer() dipanggil, aplikasi dapat memanggil ExitContainer() pada pembaca kapan saja, terlepas dari apakah semua elemen dalam penampung pokok telah dibaca atau tidak.

Detail
Parameter
[in] outerContainerType
Nilai TLVType yang ditampilkan oleh metode EnterContainer().
Nilai yang Ditampilkan
WEAVE_NO_ERROR
Jika metode ini berhasil.
WEAVE_ERROR_INCORRECT_STATE
Jika OpenContainer() belum dipanggil pada pembaca, atau jika pembaca container tidak cocok dengan yang diteruskan ke metode OpenContainer().
WEAVE_ERROR_TLV_UNDERRUN
Jika encoding TLV yang mendasarinya berakhir sebelum waktunya.
WEAVE_ERROR_INVALID_TLV_ELEMENT
Jika pembaca mengalami jenis elemen TLV yang tidak valid atau tidak didukung.
WEAVE_ERROR_INVALID_TLV_TAG
Jika pembaca menemukan tag TLV dalam konteks yang tidak valid.
other
Kode error platform atau Weave lainnya yang ditampilkan oleh fungsi GetNextBuffer() yang dikonfigurasi. Hanya memungkinkan jika GetNextBuffer adalah non-NULL.

Dapatkan

WEAVE_ERROR Get(
  bool & v
)

Mendapatkan nilai elemen saat ini sebagai jenis bool.

Detail
Parameter
[out] v
Menerima nilai yang terkait dengan elemen TLV saat ini.
Nilai yang Ditampilkan
WEAVE_NO_ERROR
Jika metode ini berhasil.
WEAVE_ERROR_WRONG_TLV_TYPE
Jika elemen saat ini bukan jenis boolean TLV, atau pembaca tidak diposisikan pada elemen.

Dapatkan

WEAVE_ERROR Get(
  int8_t & v
)

Mendapatkan nilai elemen saat ini sebagai bilangan bulat dengan tanda tangan 8-bit.

Jika nilai bilangan bulat yang dienkode lebih besar dari jenis data output, nilai yang dihasilkan akan dipotong.

Detail
Parameter
[out] v
Menerima nilai yang terkait dengan elemen TLV saat ini.
Nilai yang Ditampilkan
WEAVE_NO_ERROR
Jika metode ini berhasil.
WEAVE_ERROR_WRONG_TLV_TYPE
Jika elemen saat ini bukan jenis bilangan bulat TLV (ditandatangani atau tidak ditandatangani), atau pembaca tidak diposisikan pada elemen.

Dapatkan

WEAVE_ERROR Get(
  int16_t & v
)

Mendapatkan nilai elemen saat ini sebagai bilangan bulat 16-bit yang ditandatangani.

Jika nilai bilangan bulat yang dienkode lebih besar dari jenis data output, nilai yang dihasilkan akan dipotong.

Detail
Parameter
[out] v
Menerima nilai yang terkait dengan elemen TLV saat ini.
Nilai yang Ditampilkan
WEAVE_NO_ERROR
Jika metode ini berhasil.
WEAVE_ERROR_WRONG_TLV_TYPE
Jika elemen saat ini bukan jenis bilangan bulat TLV (ditandatangani atau tidak ditandatangani), atau pembaca tidak diposisikan pada elemen.

Dapatkan

WEAVE_ERROR Get(
  int32_t & v
)

Mendapatkan nilai elemen saat ini sebagai bilangan bulat yang ditandatangani 32-bit.

Jika nilai bilangan bulat yang dienkode lebih besar dari jenis data output, nilai yang dihasilkan akan dipotong.

Detail
Parameter
[out] v
Menerima nilai yang terkait dengan elemen TLV saat ini.
Nilai yang Ditampilkan
WEAVE_NO_ERROR
Jika metode ini berhasil.
WEAVE_ERROR_WRONG_TLV_TYPE
Jika elemen saat ini bukan jenis bilangan bulat TLV (ditandatangani atau tidak ditandatangani), atau pembaca tidak diposisikan pada elemen.

Dapatkan

WEAVE_ERROR Get(
  int64_t & v
)

Mendapatkan nilai elemen saat ini sebagai bilangan bulat yang ditandatangani 64-bit.

Jika nilai bilangan bulat yang dienkode lebih besar dari jenis data output, nilai yang dihasilkan akan dipotong.

Detail
Parameter
[out] v
Menerima nilai yang terkait dengan elemen TLV saat ini.
Nilai yang Ditampilkan
WEAVE_NO_ERROR
Jika metode ini berhasil.
WEAVE_ERROR_WRONG_TLV_TYPE
Jika elemen saat ini bukan jenis bilangan bulat TLV (ditandatangani atau tidak ditandatangani), atau pembaca tidak diposisikan pada elemen.

Dapatkan

WEAVE_ERROR Get(
  uint8_t & v
)

Mendapatkan nilai elemen saat ini sebagai bilangan bulat tanpa tanda tangan 8-bit.

Jika nilai bilangan bulat yang dienkode lebih besar dari jenis data output, nilai yang dihasilkan akan dipotong. Demikian pula, jika nilai bilangan bulat yang dienkode adalah negatif, nilai tersebut akan dikonversi menjadi tanpa label.

Detail
Parameter
[out] v
Menerima nilai yang terkait dengan elemen TLV saat ini.
Nilai yang Ditampilkan
WEAVE_NO_ERROR
Jika metode ini berhasil.
WEAVE_ERROR_WRONG_TLV_TYPE
Jika elemen saat ini bukan jenis bilangan bulat TLV (ditandatangani atau tidak ditandatangani), atau pembaca tidak diposisikan pada elemen.

Dapatkan

WEAVE_ERROR Get(
  uint16_t & v
)

Mendapatkan nilai elemen saat ini sebagai bilangan bulat tanpa tanda tangan 16-bit.

Jika nilai bilangan bulat yang dienkode lebih besar dari jenis data output, nilai yang dihasilkan akan dipotong. Demikian pula, jika nilai bilangan bulat yang dienkode adalah negatif, nilai tersebut akan dikonversi menjadi tanpa label.

Detail
Parameter
[out] v
Menerima nilai yang terkait dengan elemen TLV saat ini.
Nilai yang Ditampilkan
WEAVE_NO_ERROR
Jika metode ini berhasil.
WEAVE_ERROR_WRONG_TLV_TYPE
Jika elemen saat ini bukan jenis bilangan bulat TLV (ditandatangani atau tidak ditandatangani), atau pembaca tidak diposisikan pada elemen.

Dapatkan

WEAVE_ERROR Get(
  uint32_t & v
)

Mendapatkan nilai elemen saat ini sebagai bilangan bulat tanpa tanda tangan 32-bit.

Jika nilai bilangan bulat yang dienkode lebih besar dari jenis data output, nilai yang dihasilkan akan dipotong. Demikian pula, jika nilai bilangan bulat yang dienkode adalah negatif, nilai tersebut akan dikonversi menjadi tanpa label.

Detail
Parameter
[out] v
Menerima nilai yang terkait dengan elemen TLV saat ini.
Nilai yang Ditampilkan
WEAVE_NO_ERROR
Jika metode ini berhasil.
WEAVE_ERROR_WRONG_TLV_TYPE
Jika elemen saat ini bukan jenis bilangan bulat TLV (ditandatangani atau tidak ditandatangani), atau pembaca tidak diposisikan pada elemen.

Dapatkan

WEAVE_ERROR Get(
  uint64_t & v
)

Mendapatkan nilai elemen saat ini sebagai bilangan bulat tanpa tanda tangan 64-bit.

Jika nilai bilangan bulat yang dienkode tersebut negatif, nilai tersebut akan dikonversi menjadi tanpa label.

Detail
Parameter
[out] v
Menerima nilai yang terkait dengan elemen TLV saat ini.
Nilai yang Ditampilkan
WEAVE_NO_ERROR
Jika metode ini berhasil.
WEAVE_ERROR_WRONG_TLV_TYPE
Jika elemen saat ini bukan jenis bilangan bulat TLV (ditandatangani atau tidak ditandatangani), atau pembaca tidak diposisikan pada elemen.

Dapatkan

WEAVE_ERROR Get(
  float & v
)

Dapatkan

WEAVE_ERROR Get(
  double & v
)

Mendapatkan nilai elemen saat ini sebagai bilangan floating point presisi ganda.

Detail
Parameter
[out] v
Menerima nilai yang terkait dengan elemen TLV saat ini.
Nilai yang Ditampilkan
WEAVE_NO_ERROR
Jika metode ini berhasil.
WEAVE_ERROR_WRONG_TLV_TYPE
Jika elemen saat ini bukan jenis floating point TLV, atau pembaca tidak diposisikan pada elemen.

GetBufHandle

uintptr_t GetBufHandle(
  void
) const 

GetBytes

WEAVE_ERROR GetBytes(
  uint8_t *buf,
  uint32_t bufSize
)

Dapatkan nilai elemen string UTF8 atau byte saat ini.

Untuk menentukan ukuran buffer input yang diperlukan, panggil metode GetLength() sebelum memanggil GetBytes().

Detail
Parameter
[in] buf
Pointer ke buffer untuk menerima data string.
[in] bufSize
Ukuran dalam byte buffer yang ditunjuk oleh buf.
Nilai yang Ditampilkan
WEAVE_NO_ERROR
Jika metode ini berhasil.
WEAVE_ERROR_WRONG_TLV_TYPE
Jika elemen saat ini bukan byte TLV atau string UTF8, atau pembaca tidak diposisikan pada elemen.
WEAVE_ERROR_BUFFER_TOO_SMALL
Jika buffer yang disediakan terlalu kecil untuk menampung data yang terkait dengan elemen saat ini.
WEAVE_ERROR_TLV_UNDERRUN
Jika encoding TLV yang mendasarinya berakhir sebelum waktunya.
other
Kode error platform atau Weave lainnya yang ditampilkan oleh fungsi GetNextBuffer() yang dikonfigurasi. Hanya memungkinkan jika GetNextBuffer adalah non-NULL.

GetContainerType

TLVType GetContainerType(
  void
) const 

Menampilkan jenis container tempat TLVReader saat ini dibaca.

Metode GetContainerType() menampilkan jenis container TLV yang sedang dibaca oleh TLVReader. Jika TLVReader diposisikan di tingkat terluar dari encoding TLV (yaitu sebelum, pada, atau setelah elemen TLV terluar), metode ini akan menampilkan kTLVType_NotSpecified.

Detail
Hasil
TLVType dari container saat ini, atau kTLVType_NotSpecified jika TLVReader tidak diposisikan dalam container.

GetControlByte

uint16_t GetControlByte(
  void
) const 

Menampilkan byte kontrol yang terkait dengan elemen TLV saat ini.

Idealnya, tidak ada yang perlu mengetahui tentang byte kontrol dan hanya implementasi internal TLV yang boleh memiliki akses ke byte kontrol tersebut. Namun, meskipun demikian, memiliki akses ke byte kontrol sangat membantu untuk keperluan proses debug oleh TLVDebugUtilitas (yang mencoba mendekode byte kontrol tag saat cukup mencetak konten buffer TLV).

Detail
Hasil
Bilangan bulat tanpa label yang berisi byte kontrol yang terkait dengan elemen TLV saat ini. kTLVControlByte_NotSpecified ditampilkan jika pembaca tidak diposisikan pada elemen.

GetDataPtr

WEAVE_ERROR GetDataPtr(
  const uint8_t *& data
)

Mendapatkan pointer ke byte yang dienkode awal dari byte TLV atau elemen string UTF8.

Metode ini menampilkan pointer langsung nilai string yang dienkode dalam buffer input yang mendasarinya. Agar berhasil, metode ini mengharuskan keseluruhan nilai string ada dalam satu buffer. Jika tidak, metode akan menampilkan WEAVE_ERROR_TLV_UNDERRUN. Hal ini membuat metode penggunaan terbatas saat membaca data dari beberapa buffer yang terputus.

Detail
Parameter
[out] data
Referensi ke pointer konstanta yang akan menerima pointer ke data string yang mendasarinya.
Nilai yang Ditampilkan
WEAVE_NO_ERROR
Jika metode ini berhasil.
WEAVE_ERROR_WRONG_TLV_TYPE
Jika elemen saat ini bukan byte TLV atau string UTF8, atau pembaca tidak diposisikan pada elemen.
WEAVE_ERROR_TLV_UNDERRUN
Jika encoding TLV yang mendasarinya berakhir sebelum waktunya atau nilai elemen string saat ini tidak dimuat dalam satu buffer berdekatan.
other
Kode error platform atau Weave lainnya yang ditampilkan oleh fungsi GetNextBuffer() yang dikonfigurasi. Hanya memungkinkan jika GetNextBuffer adalah non-NULL.

GetLength

uint32_t GetLength(
  void
) const 

Menampilkan panjang data yang terkait dengan elemen TLV saat ini.

Panjang data hanya berlaku untuk elemen jenis string UTF8 atau string byte. Untuk string UTF8, nilai yang ditampilkan adalah jumlah byte dalam string, bukan jumlah karakter.

Detail
Hasil
Panjang data (dalam byte) yang terkait dengan elemen TLV saat ini, atau 0 jika elemen saat ini bukan string byte atau string UTF8, atau jika pembaca tidak diposisikan pada elemen.

GetLengthRead

uint32_t GetLengthRead(
  void
) const 

Menampilkan jumlah total byte yang dibaca sejak pembaca diinisialisasi.

Detail
Hasil
Jumlah total byte yang dibaca sejak pembaca diinisialisasi.

GetReadPoint

const uint8_t * GetReadPoint(
  void
) const 

Mendapatkan titik di buffer input yang mendasarinya yang sesuai dengan posisi pembaca saat ini.

Detail
Hasil
Pointer ke buffer input yang mendasarinya dan sesuai dengan posisi pembaca saat ini.

GetRemainingLength

uint32_t GetRemainingLength(
  void
) const 

Menampilkan jumlah total byte yang dapat dibaca hingga panjang baca maksimum tercapai.

Detail
Hasil
Jumlah total byte yang dapat dibaca hingga panjang baca maksimum tercapai.

GetString

WEAVE_ERROR GetString(
  char *buf,
  uint32_t bufSize
)

Mendapatkan nilai elemen string UTF8 atau byte saat ini sebagai string null yang dihentikan.

Untuk menentukan ukuran buffer input yang diperlukan, panggil metode GetLength() sebelum memanggil GetBytes(). Buffer input setidaknya harus satu byte lebih besar dari panjang string untuk mengakomodasi karakter null.

Detail
Parameter
[in] buf
Pointer ke buffer untuk menerima data string byte.
[in] bufSize
Ukuran dalam byte buffer yang ditunjuk oleh buf.
Nilai yang Ditampilkan
WEAVE_NO_ERROR
Jika metode ini berhasil.
WEAVE_ERROR_WRONG_TLV_TYPE
Jika elemen saat ini bukan byte TLV atau string UTF8, atau pembaca tidak diposisikan pada elemen.
WEAVE_ERROR_BUFFER_TOO_SMALL
Jika buffer yang disediakan terlalu kecil untuk menampung data yang terkait dengan elemen saat ini.
WEAVE_ERROR_TLV_UNDERRUN
Jika encoding TLV yang mendasarinya berakhir sebelum waktunya.
other
Kode error platform atau Weave lainnya yang ditampilkan oleh fungsi GetNextBuffer() yang dikonfigurasi. Hanya memungkinkan jika GetNextBuffer adalah non-NULL.

GetTag

uint64_t GetTag(
  void
) const 

Menampilkan tag yang terkait dengan elemen TLV saat ini.

Nilai yang ditampilkan oleh GetTag() dapat digunakan dengan fungsi utilitas tag (IsProfileTag(), IsContextTag(), ProfileIdFromTag(), dll.) untuk menentukan jenis tag dan untuk mengekstrak berbagai nilai kolom tag.

Detail
Hasil
Bilangan bulat tanpa label yang berisi informasi tentang tag yang terkait dengan elemen TLV saat ini.

GetType

TLVType GetType(
  void
) const 

Menampilkan jenis elemen TLV saat ini.

Detail
Hasil
Nilai TLVType yang menjelaskan jenis data elemen TLV saat ini. Jika pembaca tidak diposisikan pada elemen TLV, nilai yang ditampilkan akan menjadi kTLVType_NotSpecified.

Init

void Init(
  const TLVReader & aReader
)

Melakukan inisialisasi objek TLVReader dari objek TLVReader lain.

Detail
Parameter
[in] aReader
Referensi hanya baca ke TLVReader untuk menginisialisasinya.

Init

void Init(
  const uint8_t *data,
  uint32_t dataLen
)

Melakukan inisialisasi objek TLVReader untuk membaca dari buffer input tunggal.

Detail
Parameter
[in] data
Pointer ke buffer yang berisi data TLV yang akan diurai.
[in] dataLen
Panjang data TLV yang akan diurai.

Init

void Init(
  PacketBuffer *buf,
  uint32_t maxLen
)

Melakukan inisialisasi objek TLVReader untuk membaca dari satu PacketBuffer.

Penguraian dimulai pada posisi awal buffer (buf->DataStart()) dan berlanjut hingga akhir data dalam buffer (seperti yang dilambangkan oleh buf->Datalen()), atau byte maxLen telah diurai.

Detail
Parameter
[in] buf
Pointer ke PacketBuffer yang berisi data TLV yang akan diurai.
[in] maxLen
Maksimum byte yang akan diurai. Setelan default-nya adalah jumlah data dalam buffer input.

Init

void Init(
  PacketBuffer *buf,
  uint32_t maxLen,
  bool allowDiscontiguousBuffers
)

Melakukan inisialisasi objek TLVReader untuk membaca dari satu atau beberapa PacketBuffer.

Penguraian dimulai pada posisi awal buffer awal (buf->DataStart()). Jika allowDiscontiguousBuffers bernilai benar, pembaca akan maju melalui rantai buffer yang ditautkan oleh pointer Next(). Penguraian berlanjut hingga semua data dalam rantai buffer dikonsumsi (seperti yang dilambangkan dengan buf->Datalen()), atau byte maxLen telah diuraikan.

Detail
Parameter
[in] buf
Pointer ke PacketBuffer yang berisi data TLV yang akan diurai.
[in] maxLen
Maksimum byte yang akan diurai. Setelan defaultnya adalah jumlah total data dalam rantai buffer input.
[in] allowDiscontiguousBuffers
Jika true (benar), lanjutkan ke buffer berikutnya dalam rantai setelah semua data dalam buffer saat ini digunakan. Jika salah (false), hentikan penguraian di akhir buffering awal.

Berikutnya

WEAVE_ERROR Next(
  void
)

Memajukan objek TLVReader ke elemen TLV berikutnya yang akan dibaca.

Metode Next() memosisikan objek pembaca pada elemen berikutnya dalam encoding TLV yang berada dalam konteks pembatasan yang sama. Secara khusus, jika pembaca diposisikan di tingkat terluar encoding TLV, memanggil Next() akan memajukan pembaca ke elemen teratas berikutnya. Jika pembaca diposisikan dalam elemen penampung TLV (struktur, array, atau jalur), memanggil Next() akan memajukan pembaca ke elemen anggota penampung berikutnya.

Karena Next() membatasi gerakan pembaca ke konteks pembatasan saat ini, memanggil Next() saat pembaca diposisikan pada elemen penampung akan memajukan ke atas penampung, melewati elemen anggotanya (dan anggota penampung bertingkat) hingga mencapai elemen pertama setelah penampung.

Jika tidak ada elemen lebih lanjut dalam konteks pembatasan tertentu, metode Next() akan menampilkan error WEAVE_END_OF_TLV dan posisi pembaca tidak akan berubah.

Detail
Nilai yang Ditampilkan
WEAVE_NO_ERROR
Jika pembaca berhasil diposisikan di elemen baru.
WEAVE_END_OF_TLV
Jika tidak ada elemen lebih lanjut yang tersedia.
WEAVE_ERROR_TLV_UNDERRUN
Jika encoding TLV yang mendasarinya berakhir sebelum waktunya.
WEAVE_ERROR_INVALID_TLV_ELEMENT
Jika pembaca mengalami jenis elemen TLV yang tidak valid atau tidak didukung.
WEAVE_ERROR_INVALID_TLV_TAG
Jika pembaca menemukan tag TLV dalam konteks yang tidak valid.
WEAVE_ERROR_UNKNOWN_IMPLICIT_TLV_TAG
Jika pembaca menemukan tag TLV yang dienkode secara implisit, yang ID profil terkaitnya tidak diketahui.
other
Kode error platform atau Weave lainnya yang ditampilkan oleh fungsi GetNextBuffer() yang dikonfigurasi. Hanya memungkinkan jika GetNextBuffer adalah non-NULL.

Berikutnya

WEAVE_ERROR Next(
  TLVType expectedType,
  uint64_t expectedTag
)

Memajukan objek TLVReader ke elemen TLV berikutnya yang akan dibaca, dengan menyatakan jenis dan tag elemen baru.

Metode Next(TLVType expectedType, uint64_t expectedTag) adalah metode praktis yang memiliki perilaku yang sama dengan Next(), tetapi juga memverifikasi bahwa jenis dan tag elemen TLV baru cocok dengan argumen yang diberikan.

Detail
Parameter
[in] expectedType
Jenis data yang diharapkan untuk elemen berikutnya.
[in] expectedTag
Tag yang diharapkan untuk elemen berikutnya.
Nilai yang Ditampilkan
WEAVE_NO_ERROR
Jika pembaca berhasil diposisikan di elemen baru.
WEAVE_END_OF_TLV
Jika tidak ada elemen lebih lanjut yang tersedia.
WEAVE_ERROR_WRONG_TLV_TYPE
Jika jenis elemen baru tidak sesuai dengan nilai argumen expectedType.
WEAVE_ERROR_UNEXPECTED_TLV_ELEMENT
Jika tag yang terkait dengan elemen baru tidak cocok dengan nilai argumen expectedTag.
WEAVE_ERROR_TLV_UNDERRUN
Jika encoding TLV yang mendasarinya berakhir sebelum waktunya.
WEAVE_ERROR_INVALID_TLV_ELEMENT
Jika pembaca mengalami jenis elemen TLV yang tidak valid atau tidak didukung.
WEAVE_ERROR_INVALID_TLV_TAG
Jika pembaca menemukan tag TLV dalam konteks yang tidak valid.
other
Kode error platform atau Weave lainnya yang ditampilkan oleh fungsi GetNextBuffer() yang dikonfigurasi. Hanya memungkinkan jika GetNextBuffer adalah non-NULL.

OpenContainer

WEAVE_ERROR OpenContainer(
  TLVReader & containerReader
)

Melakukan inisialisasi objek TLVReader baru untuk membaca anggota elemen container TLV.

Metode OpenContainer() menginisialisasi objek TLVReader baru untuk membaca elemen anggota container TLV (struktur, array, atau jalur). Saat OpenContainer() dipanggil, objek TLVReader saat ini harus diposisikan pada elemen container agar dapat dibaca. Metode ini mengambil referensi ke pembaca baru sebagai argumen tunggal yang akan diinisialisasi untuk membaca container. Pembaca ini dikenal sebagai pembaca penampung, sedangkan pembaca yang memanggil OpenContainer() dikenal sebagai pembaca induk.

Saat metode OpenContainer() ditampilkan, pembaca container diposisikan tepat sebelum anggota pertama container. Memanggil Next() pada pembaca penampung akan melanjutkan ke seluruh anggota koleksi hingga akhir tercapai, lalu pembaca akan menampilkan WEAVE_END_OF_TLV.

Saat pembaca container terbuka, aplikasi tidak boleh melakukan panggilan pada atau mengubah status pembaca induk. Setelah selesai menggunakan pembaca container, aplikasi harus menutupnya dengan memanggil CloseContainer() pada pembaca induk, dengan meneruskan pembaca container sebagai argumen. Aplikasi dapat menutup pembaca penampung kapan saja, dengan atau tanpa membaca semua elemen yang terdapat dalam penampung pokok. Setelah pembaca container ditutup, aplikasi dapat melanjutkan penggunaan pembaca induk.

Pembaca container mewarisi berbagai properti konfigurasi dari pembaca induk. Karakter pengganti ini meliputi:

  • ID profil implisit (ImplicitProfileId)
  • Pointer data aplikasi (AppData)
  • Pointer fungsi GetNextBuffer

Detail
Parameter
[out] containerReader
Referensi ke objek TLVReader yang akan diinisialisasi untuk membaca anggota elemen container saat ini. Data apa pun yang terkait dengan objek yang disediakan akan ditimpa.
Nilai yang Ditampilkan
WEAVE_NO_ERROR
Jika metode ini berhasil.
WEAVE_ERROR_INCORRECT_STATE
Jika elemen saat ini tidak diposisikan pada elemen container.

Lewati

WEAVE_ERROR Skip(
  void
)

Memajukan objek TLVReader tepat setelah elemen TLV saat ini.

Metode Skip() memosisikan objek pembaca tepat setelah elemen TLV saat ini, sehingga panggilan selanjutnya ke Next() akan memajukan pembaca ke elemen berikut. Seperti Next(), jika pembaca diposisikan di elemen penampung pada saat panggilan, anggota penampung akan dilewati. Jika pembaca tidak diposisikan pada elemen mana pun, posisinya tidak berubah.

Detail
Nilai yang Ditampilkan
WEAVE_NO_ERROR
Jika pembaca berhasil diposisikan di elemen baru.
WEAVE_END_OF_TLV
Jika tidak ada elemen lebih lanjut yang tersedia.
WEAVE_ERROR_TLV_UNDERRUN
Jika encoding TLV yang mendasarinya berakhir sebelum waktunya.
WEAVE_ERROR_INVALID_TLV_ELEMENT
Jika pembaca mengalami jenis elemen TLV yang tidak valid atau tidak didukung.
WEAVE_ERROR_INVALID_TLV_TAG
Jika pembaca menemukan tag TLV dalam konteks yang tidak valid.
other
Kode error platform atau Weave lainnya yang ditampilkan oleh fungsi GetNextBuffer() yang dikonfigurasi. Hanya memungkinkan jika GetNextBuffer adalah non-NULL.

VerifyEndOfContainer

WEAVE_ERROR VerifyEndOfContainer(
  void
)

Memverifikasi bahwa objek TVLReader berada di akhir container TLV.

Metode VerifyEndOfContainer() memverifikasi bahwa tidak ada elemen TLV lebih lanjut untuk dibaca dalam penampung TLV saat ini. Ini adalah metode praktis yang setara dengan memanggil Next() dan memeriksa nilai hasil WEAVE_END_OF_TLV.

Detail
Nilai yang Ditampilkan
WEAVE_NO_ERROR
Jika tidak ada elemen TLV lebih lanjut untuk dibaca.
WEAVE_ERROR_UNEXPECTED_TLV_ELEMENT
Jika elemen TLV lain ditemukan dalam koleksi.
WEAVE_ERROR_TLV_UNDERRUN
Jika encoding TLV yang mendasarinya berakhir sebelum waktunya.
WEAVE_ERROR_INVALID_TLV_ELEMENT
Jika pembaca mengalami jenis elemen TLV yang tidak valid atau tidak didukung.
WEAVE_ERROR_INVALID_TLV_TAG
Jika pembaca menemukan tag TLV dalam konteks yang tidak valid.
other
Kode error platform atau Weave lainnya yang ditampilkan oleh fungsi GetNextBuffer() yang dikonfigurasi. Hanya memungkinkan jika GetNextBuffer adalah non-NULL.

Fungsi yang dilindungi

ClearElementState

void ClearElementState(
  void
)

Hapus status TLVReader.

Metode ini digunakan untuk memosisikan pembaca sebelum TLV pertama, antara TLV, atau setelah TLV terakhir.

ElementType

TLVElementType ElementType(
  void
) const 

Ini adalah metode pribadi yang menampilkan TLVElementType dari mControlByte.

EnsureData

WEAVE_ERROR EnsureData(
  WEAVE_ERROR noDataErr
)

GetElementHeadLength

WEAVE_ERROR GetElementHeadLength(
  uint8_t & elemHeadBytes
) const 

Ini adalah metode pribadi yang digunakan untuk menghitung panjang kepala elemen TLV.

IsContainerOpen

bool IsContainerOpen(
  void
) const 

ReadData

WEAVE_ERROR ReadData(
  uint8_t *buf,
  uint32_t len
)

ReadElement

WEAVE_ERROR ReadElement(
  void
)

ReadTag

uint64_t ReadTag(
  TLVTagControl tagControl,
  const uint8_t *& p
)

SetContainerOpen

void SetContainerOpen(
  bool aContainerOpen
)

SkipData

WEAVE_ERROR SkipData(
  void
)

Lewati data apa pun yang terdapat dalam TLV saat ini dengan membacanya tanpa buffer tujuan.

Detail
Nilai yang Ditampilkan
WEAVE_NO_ERROR
Apakah pembaca berhasil diposisikan di akhir data.
other
Kode error platform atau Weave lainnya yang ditampilkan oleh fungsi GetNextBuffer() yang dikonfigurasi. Hanya memungkinkan jika GetNextBuffer adalah non-NULL.

SkipToEndOfContainer

WEAVE_ERROR SkipToEndOfContainer(
  void
)

VerifyElement

WEAVE_ERROR VerifyElement(
  void
)

Fungsi statis yang dilindungi

FailGetNextBuffer

WEAVE_ERROR FailGetNextBuffer(
  TLVReader & reader,
  uintptr_t & bufHandle,
  const uint8_t *& bufStart,
  uint32_t & bufLen
)

GetNextPacketBuffer

WEAVE_ERROR GetNextPacketBuffer(
  TLVReader & reader,
  uintptr_t & bufHandle,
  const uint8_t *& bufStart,
  uint32_t & bufLen
)