nl:: örgü:: TLV:: TLVOkuyucu

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

Dokuma kodlanmış veriler için bir bellek verimli ayrıştırıcı Sağlar TLV formatı.

Özet

TLVReader uygular Dokuma için salt ileri, “pull-tarzı” ayrıştırıcı TLV veri.TLVReader amacı bir dizi yineleme için kullanılabilir bir imleç gibi çalışır TLV elemanları ve bunların içerikleri yorumlar. Bir eleman üzerine yerleştirilmiş, uygulamalar okuyucunun çağrı yapabilir () ile mevcut eleman türünü ve etiket sorgu yöntemleri ve ilişkili herhangi bir değer elde etmek için. Okuyucunun sonraki () metodu elemanından elemanına önceden için kullanılır.

BirTLVReader nesnesi her zaman ya da bir süre sonra, daha önce ya da konumlandırılmış TLV elemanı. İlk başlatıldı zaman,TLVReader kodlama birinci elemanın hemen önce konumlandırılmıştır. Okumaya başlamak için, bir uygulama, bir başlangıç arama yapmak gerekir sonraki () birinci elemanın okuyucu konumlandırmak için bir yöntem. Bir muhafaza elemanı bir yapı, bir dizi ya da bir paththe encounteredeither olduğunda OpenContainer () ya da EnterContainer () yöntemleri, kabın içeriği ile yineleme için kullanılabilir.

Okuyucu sonuna ulaştığında TLV kodlama ya da bir kap içinde yer alan son element, bu bir WEAVE_END_OF_TLV hatası ile uygulama sinyal sonraki () yöntemi. Bu yeniden kadar okuyucu WEAVE_END_OF_TLV vermeye devam eder, ya da mevcut kapsayıcı çıkılır (yoluyla CloseContainer () / ExitContainer () ).

BirTLVReader amacı, sabit bir giriş tamponu, ya da bir ya da daha fazla PacketBuffers bir zincir doğrudan veri ayrıştırabilir. Ayrıca, uygulama, bir tedarik GetNextBuffer keyfi bir kaynaktan, örneğin bir yuva veya bir seri bağlantı noktası okuyucuya besleme verilerine fonksiyonu.

miras

Doğrudan Bilinen Alt Sınıflar:
  nl::Weave::Profiles::DataManagement_Current::CircularEventReader
  nl::Örgü::TLV::DaireselTLVOkuyucu

Genel türler

GetNextBufferFunct )(TLVReader &reader, uintptr_t &bufHandle, const uint8_t *&bufStart, uint32_t &bufLen) WEAVE_ERROR(*
Ek almak için kullanılabilecek bir işlev TLV veri çözümlenmesi mümkündür.

Genel özellikler

AppData
void *
Uygulamaya özel veriler için kullanılabilecek bir işaretçi alanı.
GetNextBuffer
Giriş verilerini üretecek bir fonksiyonu için bir işaretçiTLVReader nesne.
ImplicitProfileId
uint32_t
Örtülü biçimde kodlanmış profil etiketleri için kullanılacak profil kimliği.

Korunan özellikler

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 *

Kamu işlevleri

CloseContainer (TLVReader & containerReader)
Bir okunuşunu tamamlar TLV bir çağrıdan sonra kabın OpenContainer () .
DupBytes (uint8_t *& buf, uint32_t & dataLen)
Geçerli baytın veya UTF8 dizesinin değerini içeren bir arabellek ayırır ve döndürür.
DupString (char *& buf)
Geçerli baytın veya UTF8 dizesinin boş sonlandırılmış değerini içeren bir arabellek ayırır ve döndürür.
EnterContainer ( TLVType & outerContainerType)
Bir hazırlarTLVReader üyelerini okumak için nesne TLV muhafaza elemanı.
ExitContainer ( TLVType outerContainerType)
Bir okuma tamamlar TLV kap ve bir hazırlarTLVReader kap sonra elemanları almak için bir nesne.
Get (bool & v)
Geçerli öğenin değerini bool türü olarak alın.
Get (int8_t & v)
Geçerli öğenin değerini 8 bitlik işaretli bir tam sayı olarak alın.
Get (int16_t & v)
Geçerli öğenin değerini 16 bitlik işaretli bir tam sayı olarak alın.
Get (int32_t & v)
Geçerli öğenin değerini 32 bit işaretli bir tam sayı olarak alın.
Get (int64_t & v)
Geçerli öğenin değerini 64 bit işaretli bir tam sayı olarak alın.
Get (uint8_t & v)
Geçerli öğenin değerini 8 bitlik işaretsiz bir tam sayı olarak alın.
Get (uint16_t & v)
Geçerli öğenin değerini 16 bitlik işaretsiz bir tam sayı olarak alın.
Get (uint32_t & v)
Geçerli öğenin değerini 32 bit işaretsiz tamsayı olarak alın.
Get (uint64_t & v)
Geçerli öğenin değerini 64 bitlik işaretsiz bir tam sayı olarak alın.
Get (float & v)
Get (double & v)
Geçerli öğenin değerini çift duyarlıklı kayan noktalı sayı olarak alın.
GetBufHandle (void) const
uintptr_t
GetBytes (uint8_t *buf, uint32_t bufSize)
Geçerli baytın veya UTF8 dize öğesinin değerini alın.
GetContainerType (void) const
, İçinde kabın türünü döndürürTLVReader şu anda okuyor.
GetControlByte (void) const
uint16_t
Geçerli ilişkili denetim bayt döndürür TLV elemanı.
GetDataPtr (const uint8_t *& data)
Bir ilk kodlanmış bayta bir işaretçiyi al TLV bayt veya UTF-8 dizisi elemanı.
GetLength (void) const
uint32_t
Akım ile bağlantılı veri uzunluğunu döndürür TLV elemanı.
GetLengthRead (void) const
uint32_t
Okuyucu başlatıldığından beri okunan toplam bayt sayısını döndürür.
GetReadPoint (void) const
const uint8_t *
Okuyucunun geçerli konumuna karşılık gelen temel girdi arabelleğindeki noktayı alır.
GetRemainingLength (void) const
uint32_t
Maksimum okuma uzunluğuna ulaşılana kadar okunabilecek toplam bayt sayısını döndürür.
GetString (char *buf, uint32_t bufSize)
Geçerli bayt veya UTF8 dize öğesinin değerini boş sonlandırılmış dize olarak alın.
GetTag (void) const
uint64_t
Geçerli ilişkili etiketi döndürür TLV elemanı.
GetType (void) const
Geçerli türünü döndürür TLV elemanı.
Init (constTLVReader & aReader)
void
Bir başlatırTLVReader bir nesneyiTLVReader nesne.
Init (const uint8_t *data, uint32_t dataLen)
void
Bir başlatırTLVReader tek bir giriş tamponu okuma nesne.
Init ( PacketBuffer *buf, uint32_t maxLen)
void
Bir başlatırTLVReader tek PacketBuffer okuma nesne.
Init ( PacketBuffer *buf, uint32_t maxLen, bool allowDiscontiguousBuffers)
void
Bir başlatırTLVReader bir bir ya da daha PacketBuffers okuma nesne.
Next (void)
GelişmelerTLVReader sonraki nesne TLV elemanı okunacak.
Next ( TLVType expectedType, uint64_t expectedTag)
GelişmelerTLVReader sonraki nesne TLV elemanının yeni elemanın türünü ve etiket iddia, okunacak.
OpenContainer (TLVReader & containerReader)
Yeni bir başlatırTLVReader bir üyelerini okumak için nesne TLV konteyner elemanı.
Skip (void)
AdvancesTLVReader akımı hemen sonra nesneyi TLV elemanı.
VerifyEndOfContainer (void)
Doğrular TVLReader amacı sonunda olduğu TLV kap.

Korumalı fonksiyonlar

ClearElementState (void)
void
Durumunu temizleyinTLVReader .
ElementType (void) const
TLVElementType
Bu, mControlByte'tan TLVElementType'ı döndüren özel bir yöntemdir.
EnsureData ( WEAVE_ERROR noDataErr)
GetElementHeadLength (uint8_t & elemHeadBytes) const
Bu uzunluğunu hesaplamak için kullanılan bir özel yöntem TLV elemanı kafası.
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)
Mevcut bulunan herhangi bir veri geçiş TLV bir hedef tampon olmadan üzerinde okunarak.
SkipToEndOfContainer (void)
VerifyElement (void)

Korumalı statik fonksiyonlar

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)

Genel türler

GetNextBufferFunct

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

Ek almak için kullanılabilecek bir işlev TLV veri çözümlenmesi mümkündür.

Bu tür işlevler bir besleme veri girmek için kullanılanTLVReader . Çağrıldığında, işlevin okuyucunun ayrıştırması veya okuyucuya daha fazla veri olmadığını bildirmesi için ek veriler üretmesi beklenir.

Ayrıntılar
parametreler
[in] reader
Bir referansTLVReader giriş veri talep nesne.
[in,out] bufHandle
İşlevin çağrılar arasında bağlam verilerini depolamak için kullanabileceği bir uintptr_t değerine başvuru. Bu değer, ilk çağrıdan önce 0 olarak başlatılır.
[in,out] bufStart
Bir veri işaretçisine başvuru. İşe başlama tarihinde, bufStart son ötesinde bir bayt işaret eder TLV veri byte okuyucu tarafından tüketilen. Çıkışta, bufStart yeninin ilk bayt noktaya bekleniyor TLV ayrıştırılmasına veri. Yeni işaretçi değeri, daha önce tüketilen verilerle aynı arabellek içinde olabilir veya tamamen yeni bir arabelleğe işaret edebilir.
[out] bufLen
Fonksiyon sayısı ayarlanmış gerektiğini işaretsiz bir tamsayı bir başvuru TLV veri iade edilen bayt. Giriş ucu ise TLV veri ulaşıldı, fonksiyon, 0, bu değeri ayarlamak gerekir.
Dönüş Değerleri
WEAVE_NO_ERROR
İşlevi başarıyla daha vermesi halinde TLV ulaşılmıştır verileri veya veri girişi ucunun ( bufLen Bu durumda 0 ile ayarlanmalıdır).
other
Fonksiyonun istenen verileri üretmesini engelleyen bir hata oluştuğunu belirten diğer Örgü veya platforma özel hata kodları.

Genel özellikler

Uygulama verisi

void * AppData

Uygulamaya özel veriler için kullanılabilecek bir işaretçi alanı.

GetNextBuffer

GetNextBufferFunct GetNextBuffer

Giriş verilerini üretecek bir fonksiyonu için bir işaretçiTLVReader nesne.

NULL (varsayılan değer) olarak ayarlanırsa, okuyucu başka girdi verisi olmadığını varsayacaktır.

GetNextBuffer herhangi bir zamanda bir uygulama tarafından ayarlanabilir, ancak genellikle okuyucu başlatıldığında ayarlanır.

GetNextBuffer işlevinin uygulanması hakkında ek bilgi için GetNextBufferFunct tür tanımına bakın.

ImplicitProfileId

uint32_t ImplicitProfileId

Örtülü biçimde kodlanmış profil etiketleri için kullanılacak profil kimliği.

Okuyucu örtük biçimde kodlanmış bir profile özel etiket karşılaştığında, değerini kullanır ImplicitProfileId etiketi için assumed profil id olarak mülkiyet.

Varsayılan olarak, ImplicitProfileId özelliği kProfileIdNotSpecified olarak ayarlanır. Deşifre zaman TLV örtülü olarak kodlanmış etiket içeriyor, uygulamalar ayarlamalısınız ImplicitProfileId öncesinde herhangi okumaya TLV böyle etiketler içerdiği unsurları. Uygun profil kimliği genellikle konuşulan uygulamanın veya protokolün bağlamına bağlıdır.

Sırasında bir örtük-kodlanmış etiket karşılaşılırsa ImplicitProfileId kProfileIdNotSpecified olarak ayarlandığında, okuyucu bir dönecektir WEAVE_ERROR_UNKNOWN_IMPLICIT_TLV_TAG hatası.

Korunan özellikler

mBufBitiş

const uint8_t * mBufEnd

mBufTutamaç

uintptr_t mBufHandle

mContainerType

TLVType mContainerType

mControlByte

uint16_t mControlByte

mElemLenOrVal

uint64_t mElemLenOrVal

mElemTag

uint64_t mElemTag

mLenOkuma

uint32_t mLenRead

mMaxLen

uint32_t mMaxLen

mOkuma Noktası

const uint8_t * mReadPoint

Kamu işlevleri

KapatKonteyner

WEAVE_ERROR CloseContainer(
  TLVReader & containerReader
)

Bir okunuşunu tamamlar TLV bir çağrıdan sonra kabın OpenContainer () .

CloseContainer () yöntemi, bir üst durumunu geriTLVReader bir çağrısının ardından nesnenin OpenContainer () . Her çağrı için OpenContainer () uygulamalar için karşılık gelen bir çağrı yapmak gerekir CloseContainer () her iki yöntem aynı kap okuyucuya bir referans geçen.

Tüm CloseContainer () döner, ana okuyucu kabı aşağıda birinci elemanın hemen önce konumlandırılmıştır. Bu noktadan itibaren, bir uygulama kullanabilir sonraki () herhangi bir geri kalan elemanları aracılığıyla önceden yöntemi.

Uygulamalar yakın çağırabilirsiniz CloseContainer () bakılmaksızın temel kapta tüm unsurları okundu olmalarına bakılmaksızın, zaman içinde herhangi bir noktada bir ebeveyn okuyucuda. Sonra CloseContainer () olarak adlandırılmıştır, Uygulamanın başlatıldı de-"ve yeniden başlatma olmadan daha fazla kullanmak gerekir kap okuyucu dikkate almalıdır.

Ayrıntılar
parametreler
[in] containerReader
Bir referansTLVReader temin edilmiştir nesne OpenContainer () yöntemi.
Dönüş Değerleri
WEAVE_NO_ERROR
Yöntem başarılı olursa.
WEAVE_ERROR_INCORRECT_STATE
Eğer OpenContainer () okuyucuda çağrılmadıysa kap okuyucu geçirilen eşleşmiyorsa veya eğer OpenContainer () yöntemi.
WEAVE_ERROR_TLV_UNDERRUN
Altta yatan Eğer TLV zamanından önce sona kodlayan.
WEAVE_ERROR_INVALID_TLV_ELEMENT
Okuyucu, hatalı ya da desteklenmemiş bulamazsa TLV eleman türü.
WEAVE_ERROR_INVALID_TLV_TAG
Okuyucu bir karşılaştıysanız TLV geçersiz bağlamda etiketi.
other
Konfigüre tarafından döndürülen diğer örgü ya da platform hata kodları GetNextBuffer () işlev. Yalnızca GetNextBuffer NULL olmadığında mümkündür.

DupByte

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

Geçerli baytın veya UTF8 dizesinin değerini içeren bir arabellek ayırır ve döndürür.

Bu yöntem için bir arabellek oluşturur ve geçerli konumdaki bayt veya UTF-8 dize öğesiyle ilişkili verilerin bir kopyasını döndürür. Arabellek için bellek malloc() ile elde edilir ve artık gerekmediğinde arayan tarafından free() ile serbest bırakılmalıdır.

Ayrıntılar
parametreler
[out] buf
Bir yığın ayrılmış tampon maddesi için bir işaretçi için bir referans dataLen bayt başarı tahsis edilecektir.
[out] dataLen
Bayt boyutu depolama için bir referans, buf başarı.
Dönüş Değerleri
WEAVE_NO_ERROR
Yöntem başarılı olursa.
WEAVE_ERROR_WRONG_TLV_TYPE
Mevcut elemanı değilse TLV bayt veya UTF-8 dizisi, ya da okuyucu bir elemanın yerleştirilmiş değildir.
WEAVE_ERROR_NO_MEMORY
Çıkış arabelleği için bellek ayrılamadıysa.
WEAVE_ERROR_TLV_UNDERRUN
Altta yatan Eğer TLV zamanından önce sona kodlayan.
WEAVE_ERROR_UNSUPPORTED_WEAVE_FEATURE
Hedef platform malloc() ve free()'yi desteklemiyorsa.
other
Konfigüre tarafından döndürülen diğer örgü ya da platform hata kodları GetNextBuffer () işlev. Yalnızca GetNextBuffer NULL olmadığında mümkündür.

DupString

WEAVE_ERROR DupString(
  char *& buf
)

Geçerli baytın veya UTF8 dizesinin boş sonlandırılmış değerini içeren bir arabellek ayırır ve döndürür.

Bu yöntem için bir arabellek oluşturur ve geçerli konumdaki bayt veya UTF-8 dize öğesiyle ilişkili verilerin boş sonlandırılmış bir kopyasını döndürür. Arabellek için bellek malloc() ile elde edilir ve artık gerekmediğinde arayan tarafından free() ile serbest bırakılmalıdır.

Ayrıntılar
parametreler
[out] buf
Başarı durumunda yığınla ayrılmış bir arabellek atanacağı bir işaretçiye başvuru.
Dönüş Değerleri
WEAVE_NO_ERROR
Yöntem başarılı olursa.
WEAVE_ERROR_WRONG_TLV_TYPE
Mevcut elemanı değilse TLV bayt veya UTF-8 dizisi, ya da okuyucu bir elemanın yerleştirilmiş değildir.
WEAVE_ERROR_NO_MEMORY
Çıkış arabelleği için bellek ayrılamadıysa.
WEAVE_ERROR_TLV_UNDERRUN
Altta yatan Eğer TLV zamanından önce sona kodlayan.
WEAVE_ERROR_UNSUPPORTED_WEAVE_FEATURE
Hedef platform malloc() ve free()'yi desteklemiyorsa.
other
Konfigüre tarafından döndürülen diğer örgü ya da platform hata kodları GetNextBuffer () işlev. Yalnızca GetNextBuffer NULL olmadığında mümkündür.

Konteyner Girin

WEAVE_ERROR EnterContainer(
  TLVType & outerContainerType
)

Bir hazırlarTLVReader üyelerini okumak için nesne TLV muhafaza elemanı.

EnterContainer () metodu mevcut hazırlarTLVReader bir üyesi elemanları okumaya başlamak için nesne TLV konteyner (bir yapı, dizi ya da yol). Her çağrı için EnterContainer () uygulamaları için gelen arama yapmak zorundadır ExitContainer () .

Tüm EnterContainer () olarak adlandırılırTLVReader muhafaza elemanı üzerinde konumlandırılmalıdır nesne okunacak. Yöntem, kapsayıcıyı okurken okuyucunun bağlamını kaydetmek için kullanılacak bir TLVType değerine bir başvuruyu argüman olarak alır.

Tüm EnterContainer () metodu döner, okuyucu, kabın birinci elemanın hemen önce konumlandırılmıştır. Defalarca arayarak İleri () uç okuyucu WEAVE_END_OF_TLV dönecektir noktada söz konusu, ulaşılıncaya kadar koleksiyonun üyeleri ile okuyucuyu ilerletir.

Uygulama bir kap okuma bittikten sonra bu çağrı ile kabın sonra elemanlarını okumak devam ExitContainer () metodu.

Ayrıntılar
parametreler
[out] outerContainerType
Okuyucunun bağlamını alacak bir TLVType değerine başvuru.
Dönüş Değerleri
WEAVE_NO_ERROR
Yöntem başarılı olursa.
WEAVE_ERROR_INCORRECT_STATE
Geçerli öğe bir kapsayıcı öğe üzerinde konumlandırılmamışsa.

ÇıkışKonteyner

WEAVE_ERROR ExitContainer(
  TLVType outerContainerType
)

Bir okuma tamamlar TLV kap ve bir hazırlarTLVReader kap sonra elemanları almak için bir nesne.

ExitContainer () yöntemi, bir durumunu geriTLVReader bir çağrısının ardından nesnenin EnterContainer () . Her çağrı için EnterContainer () uygulamalar için karşılık gelen bir çağrı yapmak gerekir ExitContainer () tarafından döndürülen içerik değeri geçen EnterContainer () yöntemi.

Tüm ExitContainer () döner, okuyucu kabı aşağıda birinci elemanın hemen önce konumlandırılmıştır. Bu noktadan itibaren, bir uygulama kullanabilir sonraki () herhangi bir geri kalan elemanları aracılığıyla önceden yöntemi.

Bir kez EnterContainer () olarak adlandırılmıştır, uygulamalar çağırabilir ExitContainer () ne olursa olsun, alttaki kabın tüm öğeler okuma edilmiş olup, zaman içinde herhangi bir noktada bir okuyucu.

Ayrıntılar
parametreler
[in] outerContainerType
Döndürüldü TLVType değeri EnterContainer () yöntemi.
Dönüş Değerleri
WEAVE_NO_ERROR
Yöntem başarılı olursa.
WEAVE_ERROR_INCORRECT_STATE
Eğer OpenContainer () okuyucuda çağrılmadıysa kap okuyucu geçirilen eşleşmiyorsa veya eğer OpenContainer () yöntemi.
WEAVE_ERROR_TLV_UNDERRUN
Altta yatan Eğer TLV zamanından önce sona kodlayan.
WEAVE_ERROR_INVALID_TLV_ELEMENT
Okuyucu, hatalı ya da desteklenmemiş bulamazsa TLV eleman türü.
WEAVE_ERROR_INVALID_TLV_TAG
Okuyucu bir karşılaştıysanız TLV geçersiz bağlamda etiketi.
other
Konfigüre tarafından döndürülen diğer örgü ya da platform hata kodları GetNextBuffer () işlev. Yalnızca GetNextBuffer NULL olmadığında mümkündür.

Almak

WEAVE_ERROR Get(
  bool & v
)

Geçerli öğenin değerini bool türü olarak alın.

Ayrıntılar
parametreler
[out] v
Akımla ilgili değer alır TLV elemanı.
Dönüş Değerleri
WEAVE_NO_ERROR
Yöntem başarılı olursa.
WEAVE_ERROR_WRONG_TLV_TYPE
Mevcut elemanı değilse TLV boolean türü, ya da okuyucu bir elemanın yerleştirilmiş değildir.

Almak

WEAVE_ERROR Get(
  int8_t & v
)

Geçerli öğenin değerini 8 bitlik işaretli bir tam sayı olarak alın.

Kodlanmış tamsayı değeri, çıktı veri türünden daha büyükse, sonuç değeri kesilecektir.

Ayrıntılar
parametreler
[out] v
Akımla ilgili değer alır TLV elemanı.
Dönüş Değerleri
WEAVE_NO_ERROR
Yöntem başarılı olursa.
WEAVE_ERROR_WRONG_TLV_TYPE
Mevcut elemanı değilse TLV tamsayı türü (işaretli veya işaretsiz), ya da okuyucu bir elemanın yerleştirilmiş değildir.

Almak

WEAVE_ERROR Get(
  int16_t & v
)

Geçerli öğenin değerini 16 bitlik işaretli bir tam sayı olarak alın.

Kodlanmış tamsayı değeri, çıktı veri türünden daha büyükse, sonuç değeri kesilecektir.

Ayrıntılar
parametreler
[out] v
Akımla ilgili değer alır TLV elemanı.
Dönüş Değerleri
WEAVE_NO_ERROR
Yöntem başarılı olursa.
WEAVE_ERROR_WRONG_TLV_TYPE
Mevcut elemanı değilse TLV tamsayı türü (işaretli veya işaretsiz), ya da okuyucu bir elemanın yerleştirilmiş değildir.

Almak

WEAVE_ERROR Get(
  int32_t & v
)

Geçerli öğenin değerini 32 bit işaretli tamsayı olarak alın.

Kodlanmış tamsayı değeri, çıktı veri türünden daha büyükse, sonuç değeri kesilecektir.

Ayrıntılar
parametreler
[out] v
Akımla ilgili değer alır TLV elemanı.
Dönüş Değerleri
WEAVE_NO_ERROR
Yöntem başarılı olursa.
WEAVE_ERROR_WRONG_TLV_TYPE
Mevcut elemanı değilse TLV tamsayı türü (işaretli veya işaretsiz), ya da okuyucu bir elemanın yerleştirilmiş değildir.

Almak

WEAVE_ERROR Get(
  int64_t & v
)

Geçerli öğenin değerini 64 bit işaretli tamsayı olarak alın.

Kodlanmış tamsayı değeri, çıktı veri türünden daha büyükse, sonuç değeri kesilecektir.

Ayrıntılar
parametreler
[out] v
Akımla ilgili değer alır TLV elemanı.
Dönüş Değerleri
WEAVE_NO_ERROR
Yöntem başarılı olursa.
WEAVE_ERROR_WRONG_TLV_TYPE
Mevcut elemanı değilse TLV tamsayı türü (işaretli veya işaretsiz), ya da okuyucu bir elemanın yerleştirilmiş değildir.

Almak

WEAVE_ERROR Get(
  uint8_t & v
)

Geçerli öğenin değerini 8 bitlik işaretsiz bir tam sayı olarak alın.

Kodlanmış tamsayı değeri, çıktı veri türünden daha büyükse, sonuç değeri kesilecektir. Benzer şekilde, kodlanmış tamsayı değeri negatifse, değer işaretsize dönüştürülür.

Ayrıntılar
parametreler
[out] v
Akımla ilgili değer alır TLV elemanı.
Dönüş Değerleri
WEAVE_NO_ERROR
Yöntem başarılı olursa.
WEAVE_ERROR_WRONG_TLV_TYPE
Mevcut elemanı değilse TLV tamsayı türü (işaretli veya işaretsiz), ya da okuyucu bir elemanın yerleştirilmiş değildir.

Almak

WEAVE_ERROR Get(
  uint16_t & v
)

Geçerli öğenin değerini 16 bitlik işaretsiz bir tam sayı olarak alın.

Kodlanmış tamsayı değeri, çıktı veri türünden daha büyükse, sonuç değeri kesilecektir. Benzer şekilde, kodlanmış tamsayı değeri negatifse, değer işaretsize dönüştürülür.

Ayrıntılar
parametreler
[out] v
Akımla ilgili değer alır TLV elemanı.
Dönüş Değerleri
WEAVE_NO_ERROR
Yöntem başarılı olursa.
WEAVE_ERROR_WRONG_TLV_TYPE
Mevcut elemanı değilse TLV tamsayı türü (işaretli veya işaretsiz), ya da okuyucu bir elemanın yerleştirilmiş değildir.

Almak

WEAVE_ERROR Get(
  uint32_t & v
)

Geçerli öğenin değerini 32 bit işaretsiz tamsayı olarak alın.

Kodlanmış tamsayı değeri, çıktı veri türünden daha büyükse, sonuç değeri kesilecektir. Benzer şekilde, kodlanmış tamsayı değeri negatifse, değer işaretsize dönüştürülür.

Ayrıntılar
parametreler
[out] v
Akımla ilgili değer alır TLV elemanı.
Dönüş Değerleri
WEAVE_NO_ERROR
Yöntem başarılı olursa.
WEAVE_ERROR_WRONG_TLV_TYPE
Mevcut elemanı değilse TLV tamsayı türü (işaretli veya işaretsiz), ya da okuyucu bir elemanın yerleştirilmiş değildir.

Almak

WEAVE_ERROR Get(
  uint64_t & v
)

Geçerli öğenin değerini 64 bit işaretsiz tamsayı olarak alın.

Kodlanmış tamsayı değeri negatifse, değer işaretsize dönüştürülür.

Ayrıntılar
parametreler
[out] v
Akımla ilgili değer alır TLV elemanı.
Dönüş Değerleri
WEAVE_NO_ERROR
Yöntem başarılı olursa.
WEAVE_ERROR_WRONG_TLV_TYPE
Mevcut elemanı değilse TLV tamsayı türü (işaretli veya işaretsiz), ya da okuyucu bir elemanın yerleştirilmiş değildir.

Almak

WEAVE_ERROR Get(
  float & v
)

Almak

WEAVE_ERROR Get(
  double & v
)

Geçerli öğenin değerini çift duyarlıklı kayan noktalı sayı olarak alın.

Ayrıntılar
parametreler
[out] v
Akımla ilgili değer alır TLV elemanı.
Dönüş Değerleri
WEAVE_NO_ERROR
Yöntem başarılı olursa.
WEAVE_ERROR_WRONG_TLV_TYPE
Mevcut elemanı değilse TLV kayan nokta tipi, ya da okuyucu bir elemanın yerleştirilmiş değildir.

GetBufHandle

uintptr_t GetBufHandle(
  void
) const 

GetBytes

WEAVE_ERROR GetBytes(
  uint8_t *buf,
  uint32_t bufSize
)

Geçerli bayt veya UTF8 dize öğesinin değerini alın.

Gerekli girdi tampon boyutunu belirlemek için, arama GetLength () çağırmadan önce yöntemi ) (GetBytes .

Ayrıntılar
parametreler
[in] buf
Dize verilerini almak için bir arabellek işaretçisi.
[in] bufSize
Tampon bayt boyutu tarafından işaret edilen buf .
Dönüş Değerleri
WEAVE_NO_ERROR
Yöntem başarılı olursa.
WEAVE_ERROR_WRONG_TLV_TYPE
Mevcut elemanı değilse TLV bayt veya UTF-8 dizisi, ya da okuyucu bir elemanın yerleştirilmiş değildir.
WEAVE_ERROR_BUFFER_TOO_SMALL
Sağlanan arabellek, geçerli öğeyle ilişkili verileri tutamayacak kadar küçükse.
WEAVE_ERROR_TLV_UNDERRUN
Altta yatan Eğer TLV zamanından önce sona kodlayan.
other
Konfigüre tarafından döndürülen diğer örgü ya da platform hata kodları GetNextBuffer () işlev. Yalnızca GetNextBuffer NULL olmadığında mümkündür.

GetContainerType

TLVType GetContainerType(
  void
) const 

, İçinde kabın türünü döndürürTLVReader şu anda okuyor.

GetContainerType () metodu tipini verir TLV , içinde kapTLVReader okuma. EğerTLVReader bir en dış seviyede konumlandırılmış TLV kodlaması (yani, daha önce, ya da en dış sonra TLV elemanı), yöntem kTLVType_NotSpecified dönecektir.

Ayrıntılar
İadeler
Mevcut kabın TLVType veya kTLVType_NotSpecified iseTLVReader bir kap içinde konumlandırılmamıştır.

GetControlByte

uint16_t GetControlByte(
  void
) const 

Geçerli ilişkili denetim bayt döndürür TLV elemanı.

İdeal olarak, hiç kimse kontrol byte hakkında bilmesi gereken ve sadece iç uygulama TLV buna erişimi olmalıdır. Ama, yine de, kontrol byte erişerek Hata ayıklama amacıyla yararlıdır TLV ayıklama Utilities (deneyin etiketi kontrol bayt kodunu çözmek için oldukça yazdırırken TLV içeriğini tampon).

Ayrıntılar
İadeler
Akımla ilişkili kontrol bayt içeren işaretsiz bir tamsayı TLV elemanı. Okuyucu, eleman üzerinde yerleştirilmediği takdirde, kTLVControlByte_NotSpecified döndürülür.

GetDataPtr

WEAVE_ERROR GetDataPtr(
  const uint8_t *& data
)

Bir ilk kodlanmış bayta bir işaretçiyi al TLV bayt veya UTF-8 dizisi elemanı.

Bu yöntem, temel alınan giriş arabelleği içindeki kodlanmış dize değerini doğrudan bir işaretçiye döndürür. Yöntemin başarılı olması için, dize değerinin tamamının tek bir arabellekte bulunması gerekir. Aksi takdirde yöntem, döner WEAVE_ERROR_TLV_UNDERRUN . Bu, birden çok bitişik olmayan arabellekten veri okurken sınırlı kullanım yöntemini yapar.

Ayrıntılar
parametreler
[out] data
Temeldeki dize verilerine bir işaretçi alacak olan bir const işaretçisine başvuru.
Dönüş Değerleri
WEAVE_NO_ERROR
Yöntem başarılı olursa.
WEAVE_ERROR_WRONG_TLV_TYPE
Mevcut elemanı değilse TLV bayt veya UTF-8 dizisi, ya da okuyucu bir elemanın yerleştirilmiş değildir.
WEAVE_ERROR_TLV_UNDERRUN
Altta yatan Eğer TLV zamanından önce sona kodlayan veya mevcut dize elemanının değeri, tek bir bitişik tamponu içinde yer alıyor.
other
Konfigüre tarafından döndürülen diğer örgü ya da platform hata kodları GetNextBuffer () işlev. Yalnızca GetNextBuffer NULL olmadığında mümkündür.

GetLength

uint32_t GetLength(
  void
) const 

Akım ile bağlantılı veri uzunluğunu döndürür TLV elemanı.

Veri uzunluğu yalnızca UTF8 dizesi veya bayt dizesi türündeki öğeler için geçerlidir. UTF8 dizeleri için döndürülen değer, karakter sayısı değil, dizedeki bayt sayısıdır.

Ayrıntılar
İadeler
Akımla bağlantılı veri (bayt) uzunluğu TLV mevcut elemanı UTF-8 dize veya bayt dize değilse, ya da okuyucu bir elemanın yerleştirilmiş değilse elemanı veya 0.

GetLengthRead

uint32_t GetLengthRead(
  void
) const 

Okuyucu başlatıldığından beri okunan toplam bayt sayısını döndürür.

Ayrıntılar
İadeler
Okuyucu başlatıldığından beri okunan toplam bayt sayısı.

GetReadPoint

const uint8_t * GetReadPoint(
  void
) const 

Okuyucunun geçerli konumuna karşılık gelen temel girdi arabelleğindeki noktayı alır.

Ayrıntılar
İadeler
Okuyucunun geçerli konumuna karşılık gelen temel girdi arabelleğine bir işaretçi.

GetRemainingLength

uint32_t GetRemainingLength(
  void
) const 

Maksimum okuma uzunluğuna ulaşılana kadar okunabilecek toplam bayt sayısını döndürür.

Ayrıntılar
İadeler
Maksimum okuma uzunluğuna ulaşılana kadar okunabilecek toplam bayt sayısı.

GetString

WEAVE_ERROR GetString(
  char *buf,
  uint32_t bufSize
)

Geçerli bayt veya UTF8 dize öğesinin değerini boş sonlandırılmış dize olarak alın.

Gerekli girdi tampon boyutunu belirlemek için, arama GetLength () çağırmadan önce yöntemi ) (GetBytes . Boş karakteri yerleştirmek için giriş arabelleği, dize uzunluğundan en az bir bayt daha büyük olmalıdır.

Ayrıntılar
parametreler
[in] buf
Bayt dizesi verilerini almak için bir arabellek işaretçisi.
[in] bufSize
Tampon bayt boyutu tarafından işaret edilen buf .
Dönüş Değerleri
WEAVE_NO_ERROR
Yöntem başarılı olursa.
WEAVE_ERROR_WRONG_TLV_TYPE
Mevcut elemanı değilse TLV bayt veya UTF-8 dizisi, ya da okuyucu bir elemanın yerleştirilmiş değildir.
WEAVE_ERROR_BUFFER_TOO_SMALL
Sağlanan arabellek, geçerli öğeyle ilişkili verileri tutamayacak kadar küçükse.
WEAVE_ERROR_TLV_UNDERRUN
Altta yatan Eğer TLV zamanından önce sona kodlayan.
other
Konfigüre tarafından döndürülen diğer örgü ya da platform hata kodları GetNextBuffer () işlev. Yalnızca GetNextBuffer NULL olmadığında mümkündür.

GetEtiket

uint64_t GetTag(
  void
) const 

Geçerli ilişkili etiketi döndürür TLV elemanı.

Tarafından döndürülen değeri gettag () etiketi yardımcı fonksiyonları ile birlikte kullanılabilir ( IsProfileTag () , IsContextTag () , ProfileIdFromTag () , vs.) etiketin türünü belirlemek için ve çeşitli etiket alanı değerlerini elde etmek için.

Ayrıntılar
İadeler
Geçerli ilişkili etiketi hakkında bilgi içeren işaretsiz bir tam sayı TLV elemanı.

GetType

TLVType GetType(
  void
) const 

Geçerli türünü döndürür TLV elemanı.

Ayrıntılar
İadeler
Mevcut veri tipini açıklayan bir TLVType değeri TLV elemanı. Okuyucu üzerinde konumlandırılmış değilse TLV elemanı, dönüş değeri kTLVType_NotSpecified olacaktır.

İçinde

void Init(
  const TLVReader & aReader
)

Bir başlatırTLVReader bir nesneyiTLVReader nesne.

Ayrıntılar
parametreler
[in] aReader
Bir salt tek referansTLVReader bundan başlatmak için.

İçinde

void Init(
  const uint8_t *data,
  uint32_t dataLen
)

Bir başlatırTLVReader tek bir giriş tamponu okuma nesne.

Ayrıntılar
parametreler
[in] data
İhtiva eden bir tampon maddesi için bir işaretçi TLV veri ayrıştırılmasına.
[in] dataLen
Uzunluğu TLV veri ayrıştırılmasına.

İçinde

void Init(
  PacketBuffer *buf,
  uint32_t maxLen
)

Bir başlatırTLVReader tek PacketBuffer okuma nesne.

Ayrıştırma, arabelleğin başlangıç ​​konumunda (buf->DataStart()) başlar ve arabellekteki verilerin sonuna (buf->Datalen() ile gösterildiği gibi) veya maxLen baytları çözümlenene kadar devam eder.

Ayrıntılar
parametreler
[in] buf
İhtiva eden bir PacketBuffer için bir işaretçi TLV veri ayrıştırılmasına.
[in] maxLen
Ayrıştırılacak maksimum bayt. Giriş arabelleğindeki veri miktarını varsayılan olarak ayarlar.

İçinde

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

Bir başlatırTLVReader bir bir ya da daha PacketBuffers okuma nesne.

Ayrıştırma, ilk arabelleğin başlangıç ​​konumunda başlar (buf->DataStart()). AllowDiscontiguousBuffers doğru ise, okuyucu bu bağlanmış tamponların zinciri boyunca ilerleyecek sonraki () işaretçiler. Ayrıştırma, arabellek zincirindeki tüm veriler tüketilene (buf->Datalen() ile belirtildiği gibi) veya maxLen baytları ayrıştırılana kadar devam eder.

Ayrıntılar
parametreler
[in] buf
İhtiva eden bir PacketBuffer için bir işaretçi TLV veri ayrıştırılmasına.
[in] maxLen
Ayrıştırılacak maksimum bayt. Giriş arabelleği zincirindeki toplam veri miktarını varsayılan olarak ayarlar.
[in] allowDiscontiguousBuffers
Doğruysa, geçerli arabellekteki tüm veriler tüketildiğinde zincirdeki bir sonraki arabelleğe ilerleyin. Yanlışsa, ilk arabelleğin sonunda ayrıştırmayı durdurun.

Sonraki

WEAVE_ERROR Next(
  void
)

GelişmelerTLVReader sonraki nesne TLV elemanı okunacak.

Sonraki () metodu konumları sonraki elemanın okuyucu nesne TLV aynı muhafaza bağlamında bu Resides kodlayan. Özel olarak, okuyucu en dış seviyede konumlanmış olduğu takdirde TLV çağrı, kodlama () ileri gelecek, en üstteki elemana okuyucu ilerletir. Okuyucu içine yerleştirilmiş ise, TLV çağrı, muhafaza elemanının (bir yapı, dizi ya da yol) ileri () kabın sonraki üyesi elemanının okuyucu ilerletir.

Yana sonraki () çağrı halen mevcut bağlamda okuyucu hareketi, kısıtlar ileri () okuyucu ilk ulaşıncaya kadar üye elemanları (ve herhangi bir iç içe kapların üyeleri) atlayarak, kabın üzerinde ileri bir muhafaza elemanı üzerinde konumlandırıldığında kapsayıcıdan sonra eleman.

Belirli bir tutucu kapsamında başka elemanlar olduğunda sonraki () bir döner metot WEAVE_END_OF_TLV hata ve okuyucunun pozisyonu değişmeden kalır.

Ayrıntılar
Dönüş Değerleri
WEAVE_NO_ERROR
Okuyucu başarılı bir şekilde yeni bir öğeye yerleştirildiyse.
WEAVE_END_OF_TLV
Başka eleman yoksa.
WEAVE_ERROR_TLV_UNDERRUN
Altta yatan Eğer TLV zamanından önce sona kodlayan.
WEAVE_ERROR_INVALID_TLV_ELEMENT
Okuyucu, hatalı ya da desteklenmemiş bulamazsa TLV eleman türü.
WEAVE_ERROR_INVALID_TLV_TAG
Okuyucu bir karşılaştıysanız TLV geçersiz bağlamda etiketi.
WEAVE_ERROR_UNKNOWN_IMPLICIT_TLV_TAG
Okuyucu bir örtük olarak kodlanmış karşılaştıysanız TLV etiketi olan tekabül profili kimliği bilinmiyor.
other
Konfigüre tarafından döndürülen diğer örgü ya da platform hata kodları GetNextBuffer () işlev. Yalnızca GetNextBuffer NULL olmadığında mümkündür.

Sonraki

WEAVE_ERROR Next(
  TLVType expectedType,
  uint64_t expectedTag
)

GelişmelerTLVReader sonraki nesne TLV elemanının yeni elemanın türünü ve etiket iddia, okunacak.

(ExpectedTag uint64_t TLVType expectedType) Sonraki yöntem bir kolaylık aynı davranışı vardır yöntemdir sonraki () değil, aynı zamanda, yeni bir tip ve etiket doğrular TLV elemanının verilen argümanlar aynı.

Ayrıntılar
parametreler
[in] expectedType
Sonraki öğe için beklenen veri türü.
[in] expectedTag
Sonraki öğe için beklenen etiket.
Dönüş Değerleri
WEAVE_NO_ERROR
Okuyucu başarılı bir şekilde yeni bir öğeye yerleştirildiyse.
WEAVE_END_OF_TLV
Başka eleman yoksa.
WEAVE_ERROR_WRONG_TLV_TYPE
Yeni eleman tipi değerini uymuyorsa expectedType argüman.
WEAVE_ERROR_UNEXPECTED_TLV_ELEMENT
Yeni eleman ile ilişkili etiket değerini uymuyorsa expectedTag argüman.
WEAVE_ERROR_TLV_UNDERRUN
Altta yatan Eğer TLV zamanından önce sona kodlayan.
WEAVE_ERROR_INVALID_TLV_ELEMENT
Okuyucu, hatalı ya da desteklenmemiş bulamazsa TLV eleman türü.
WEAVE_ERROR_INVALID_TLV_TAG
Okuyucu bir karşılaştıysanız TLV geçersiz bağlamda etiketi.
other
Konfigüre tarafından döndürülen diğer örgü ya da platform hata kodları GetNextBuffer () işlev. Yalnızca GetNextBuffer NULL olmadığında mümkündür.

OpenContainer

WEAVE_ERROR OpenContainer(
  TLVReader & containerReader
)

Yeni bir başlatırTLVReader bir üyelerini okumak için nesne TLV konteyner elemanı.

OpenContainer () yöntemi yeni başlatırTLVReader bir üye elemanlarını okumak için bir nesne TLV kap (bir yapı, dizi ya da yol). Tüm OpenContainer () olarak adlandırılır, mevcutTLVReader nesne muhafaza elemanı üzerinde konumlandırılmalıdır okunacak. Yöntem, tek argümanı olarak, kabı okumak için başlatılacak yeni bir okuyucuya referans alır. Üzerinde okuyucu ise bu okuyucu kap okuyucu olarak bilinen OpenContainer () olarak adlandırılan ana okuyucu olarak bilinir.

Tüm OpenContainer () metodu döner kap okuyucu kabın birinci elemanın hemen önce konumlandırılmıştır. Arayan İleri () sonuna kadar koleksiyonun üyeleri içinden ilerleyecek konteyner okuyucuda okuyucu WEAVE_END_OF_TLV dönecektir noktada söz konusu, ulaşılır.

Kapsayıcı okuyucu açıkken, uygulamalar arama yapmamalı veya ana okuyucunun durumunu değiştirmemelidir. Bir uygulamaya kap okuyucu kullanılarak bittikten sonra bu çağırarak kapatmak gerekir CloseContainer () , bir argüman olarak kap okuyucu geçen ana okuyucu üzerinde. Uygulamalar, alttaki kapsayıcıda bulunan tüm öğeleri okuyarak veya okumadan kap okuyucuyu herhangi bir noktada kapatabilir. Kapsayıcı okuyucu kapatıldıktan sonra uygulamalar ana okuyucuyu kullanmaya devam edebilir.

Kap okuyucu, üst okuyucudan çeşitli yapılandırma özelliklerini devralır. Bunlar:

  • Örtük profil kimliği (ImplicitProfileId)
  • Uygulama veri işaretçisi (AppData)
  • GetNextBuffer işlev işaretçisi

Ayrıntılar
parametreler
[out] containerReader
Bir bir başvuruTLVReader mevcut kapsayıcı elemanı ile okumak için başlatılır nesne. Sağlanan nesneyle ilişkili tüm verilerin üzerine yazılır.
Dönüş Değerleri
WEAVE_NO_ERROR
Yöntem başarılı olursa.
WEAVE_ERROR_INCORRECT_STATE
Geçerli öğe bir kapsayıcı öğe üzerinde konumlandırılmamışsa.

atla

WEAVE_ERROR Skip(
  void
)

AdvancesTLVReader akımı hemen sonra nesneyi TLV elemanı.

Talebi () metodu Konumlar da, okuyucu nesne hemen mevcut sonra TLV elemanı için bir sonraki çağrı bu şekilde sonraki () aşağıdaki elemana okuyucu ilerletir. Gibi sonraki () okuyucu çağrı sırasında bir muhafaza elemanı üzerinde konumlandırılmış ise, kabın üyeleri atlanır. Okuyucu herhangi bir öğe üzerinde konumlanmadıysa konumu değişmeden kalır.

Ayrıntılar
Dönüş Değerleri
WEAVE_NO_ERROR
Okuyucu başarılı bir şekilde yeni bir öğeye yerleştirildiyse.
WEAVE_END_OF_TLV
Başka eleman yoksa.
WEAVE_ERROR_TLV_UNDERRUN
Altta yatan Eğer TLV zamanından önce sona kodlayan.
WEAVE_ERROR_INVALID_TLV_ELEMENT
Okuyucu, hatalı ya da desteklenmemiş bulamazsa TLV eleman türü.
WEAVE_ERROR_INVALID_TLV_TAG
Okuyucu bir karşılaştıysanız TLV geçersiz bağlamda etiketi.
other
Konfigüre tarafından döndürülen diğer örgü ya da platform hata kodları GetNextBuffer () işlev. Yalnızca GetNextBuffer NULL olmadığında mümkündür.

DoğrulaEndOfContainer

WEAVE_ERROR VerifyEndOfContainer(
  void
)

Doğrular TVLReader amacı sonunda olduğu TLV kap.

VerifyEndOfContainer () metodu doğrular başka olduğu TLV akımı içindeki okunacak elemanları TLV kap. This is a convenience method that is equivalent to calling Next() and checking for a return value of WEAVE_END_OF_TLV.

Ayrıntılar
Dönüş Değerleri
WEAVE_NO_ERROR
If there are no further TLV elements to be read.
WEAVE_ERROR_UNEXPECTED_TLV_ELEMENT
If another TLV element was found in the collection.
WEAVE_ERROR_TLV_UNDERRUN
If the underlying TLV encoding ended prematurely.
WEAVE_ERROR_INVALID_TLV_ELEMENT
If the reader encountered an invalid or unsupported TLV element type.
WEAVE_ERROR_INVALID_TLV_TAG
If the reader encountered a TLV tag in an invalid context.
other
Other Weave or platform error codes returned by the configured GetNextBuffer() function. Only possible when GetNextBuffer is non-NULL.

Korumalı fonksiyonlar

ClearElementState

void ClearElementState(
  void
)

Clear the state of theTLVReader .

This method is used to position the reader before the first TLV , between TLVs or after the last TLV .

ElementType

TLVElementType ElementType(
  void
) const 

This is a private method that returns the TLVElementType from mControlByte.

EnsureData

WEAVE_ERROR EnsureData(
  WEAVE_ERROR noDataErr
)

GetElementHeadLength

WEAVE_ERROR GetElementHeadLength(
  uint8_t & elemHeadBytes
) const 

This is a private method used to compute the length of a TLV element head.

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
)

Skip any data contained in the current TLV by reading over it without a destination buffer.

Ayrıntılar
Dönüş Değerleri
WEAVE_NO_ERROR
If the reader was successfully positioned at the end of the data.
other
Other Weave or platform error codes returned by the configured GetNextBuffer() function. Only possible when GetNextBuffer is non-NULL.

SkipToEndOfContainer

WEAVE_ERROR SkipToEndOfContainer(
  void
)

VerifyElement

WEAVE_ERROR VerifyElement(
  void
)

Protected static functions

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
)