nl::Weave::TLV::TLVReader

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

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

Özet

TLVReader, Weave TLV verileri için yalnızca ileriye yönelik, "çekme stili" ayrıştırıcı uygular. TLVReader nesnesi, bir TLV öğeleri dizisi üzerinde yineleme gerçekleştirmek ve bunların içeriğini yorumlamak için kullanılabilecek bir imleç olarak çalışır. Uygulamalar bir öğeye konumlandırıldığında geçerli öğenin türünü ve etiketini sorgulamak ve ilişkili herhangi bir değeri ayıklamak için okuyucunun Get() yöntemlerini çağırabilir. Okuyucunun Next() yöntemi, öğeden öğeye ilerlemek için kullanılır.

TLVReader nesnesi her zaman bir TLV öğesinin öncesinde, üzerinde veya sonrasında konumlandırılır. İlk başlatıldığında bir TLVReader, kodlamanın ilk öğesinden hemen önce yerleştirilir. Okumaya başlamak için bir uygulamanın okuyucuyu ilk öğeye konumlandırmak için Next() yöntemine ilk çağrı yapması gerekir. Bir kapsayıcı öğesiyle karşılaşıldığında bir yapı, dizi veya yolla ilgili kapsayıcı içerikleri yinelemek için OpenContainer() veya EnterContainer() yöntemleri kullanılabilir.

Okuyucu, bir TLV kodlamasının sonuna veya bir kapsayıcı içindeki son öğeye ulaştığında, Next() yönteminden bir WEAVE_END_OF_TLV hatası döndürerek uygulamaya sinyal gönderir. Okuyucu, yeniden başlatılana veya mevcut kapsayıcıdan çıkılana kadar (CloseContainer() / ExitContainer() aracılığıyla) WEAVE_END_OF_TLV döndürmeye devam eder.

TLVReader nesnesi, verileri doğrudan sabit bir giriş arabelleğinden veya bir ya da daha fazla PacketBuffer zincirinden ayrıştırabilir. Ayrıca uygulamalar, okuyucuya rastgele bir kaynaktan (ör. yuva veya seri bağlantı noktası) veri akışı sağlayan bir GetNextBuffer işlevi de sağlayabilir.

Devralma

Doğrudan Bilinen Alt Sınıflar:
  nl::Weave::Profiles::DataManagement_Current::CircularEventReader
  nl::Weave::TLV::CircularTLVReader

Herkese açık türler

GetNextBufferFunct)(TLVReader &reader, uintptr_t &bufHandle, const uint8_t *&bufStart, uint32_t &bufLen) WEAVE_ERROR(*
Ayrıştırılacak ek TLV verilerini almak için kullanılabilecek bir işlev.

Herkese açık özellikler

AppData
void *
Uygulamaya özgü veriler için kullanılabilecek işaretçi alanı.
GetNextBuffer
TLVReader nesnesi için giriş verileri oluşturacak bir işlevin işaretçisi.
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)
OpenContainer() çağrısından sonra TLV kapsayıcısının okunmasını tamamlar.
DupBytes(uint8_t *& buf, uint32_t & dataLen)
Geçerli baytın veya UTF8 dizesinin değerini içeren bir arabelleği ayırır ve döndürür.
DupString(char *& buf)
Geçerli baytın veya UTF8 dizesinin boş sona ermiş değerini içeren bir arabellek ayırır ve döndürür.
EnterContainer(TLVType & outerContainerType)
TLV kapsayıcı öğesinin üyelerini okumak için bir TLVReader nesnesi hazırlar.
ExitContainer(TLVType outerContainerType)
Bir TLV kapsayıcısının okunmasını tamamlar ve kapsayıcıdan sonra öğeleri okumak için bir TLVReader nesnesi hazırlar.
Get(bool & v)
Geçerli öğenin değerini Bool türü olarak alın.
Get(int8_t & v)
Geçerli öğenin değerini 8 bit imzalı tam sayı olarak alın.
Get(int16_t & v)
Geçerli öğenin değerini 16 bit imzalı tam sayı olarak alın.
Get(int32_t & v)
Geçerli öğenin değerini 32 bit imzalı tam sayı olarak alın.
Get(int64_t & v)
Geçerli öğenin değerini 64 bit imzalı tam sayı olarak alın.
Get(uint8_t & v)
Geçerli öğenin değerini 8 bitlik imzasız tam sayı olarak alın.
Get(uint16_t & v)
Geçerli öğenin değerini 16 bit imzasız tam sayı olarak alın.
Get(uint32_t & v)
Geçerli öğenin değerini 32 bit imzalanmamış tam sayı olarak alın.
Get(uint64_t & v)
Geçerli öğenin değerini 64 bit imzalanmamış tam sayı olarak alın.
Get(float & v)
Get(double & v)
Geçerli öğenin değerini çift duyarlıklı kayan nokta sayısı 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
TLVReader öğesinin şu anda okumakta olduğu kapsayıcının türünü döndürür.
GetControlByte(void) const
uint16_t
Geçerli TLV öğesiyle ilişkilendirilmiş kontrol baytını döndürür.
GetDataPtr(const uint8_t *& data)
Bir TLV baytının veya UTF8 dize öğesinin ilk kodlanmış baytına işaretçi alın.
GetLength(void) const
uint32_t
Mevcut TLV öğesiyle ilişkili verilerin uzunluğunu döndürür.
GetLengthRead(void) const
uint32_t
Okuyucunun başlatılmasından bu yana okunan toplam bayt sayısını döndürür.
GetReadPoint(void) const
const uint8_t *
Temel giriş arabelleğinde, okuyucunun geçerli konumuna karşılık gelen noktayı getirir.
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ın veya UTF8 dize öğesinin değerini boş sonlandırılmış dize olarak alın.
GetTag(void) const
uint64_t
Geçerli TLV öğesiyle ilişkilendirilen etiketi döndürür.
GetType(void) const
Geçerli TLV öğesinin türünü döndürür.
Init(const TLVReader & aReader)
void
Başka bir TLVReader nesnesinden bir TLVReader nesnesi başlatır.
Init(const uint8_t *data, uint32_t dataLen)
void
Tek bir giriş arabelleğinden okumak için bir TLVReader nesnesi başlatır.
Init(PacketBuffer *buf, uint32_t maxLen)
void
Tek bir PacketBuffer'dan okumak için bir TLVReader nesnesi başlatır.
Init(PacketBuffer *buf, uint32_t maxLen, bool allowDiscontiguousBuffers)
void
Bir veya daha fazla PacketBuffers'dan okumak için bir TLVReader nesnesi başlatır.
Next(void)
TLVReader nesnesini okunacak sonraki TLV öğesine ilerletir.
Next(TLVType expectedType, uint64_t expectedTag)
TLVReader nesnesini, yeni öğenin türünü ve etiketini onaylayarak okunacak bir sonraki TLV öğesine ilerletir.
OpenContainer(TLVReader & containerReader)
Bir TLV kapsayıcı öğesinin üyelerini okumak için yeni bir TLVReader nesnesi başlatır.
Skip(void)
TLVReader nesnesini, geçerli TLV öğesinin hemen sonrasına ilerletir.
VerifyEndOfContainer(void)
TVLReader nesnesinin bir TLV kapsayıcısının sonunda olduğunu doğrular.

Korunan işlevler

ClearElementState(void)
void
TLVReader öğesinin durumunu temizleyin.
ElementType(void) const
TLVElementType
Bu, mControlByte'tan TLVElementType değerini döndüren özel bir yöntemdir.
EnsureData(WEAVE_ERROR noDataErr)
GetElementHeadLength(uint8_t & elemHeadBytes) const
Bu, TLV öğe kafasının uzunluğunu hesaplamak için kullanılan gizli bir yöntemdir.
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 TLV'de yer alan verileri, hedef arabelleği olmadan okuyarak atlayın.
SkipToEndOfContainer(void)
VerifyElement(void)

Korunan statik işlevler

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)

Herkese açık türler

GetNextBufferFunct

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

Ayrıştırılacak ek TLV verilerini almak için kullanılabilecek bir işlev.

Bu tür işlevler, giriş verilerini bir TLVReader'a aktarmak için kullanılır. Çağrıldığında işlevin, okuyucuya başka verinin olmadığını ayrıştırabilmesi veya bildirebilmesi için ek veriler üretmesi beklenir.

Ayrıntılar
Parametreler
[in] reader
Giriş verilerini isteyen TLVReader nesnesine referans.
[in,out] bufHandle
İşlevin, çağrılar arasında bağlam verilerini depolamak için kullanabileceği uintptr_t değerine başvuru. Bu değer, ilk çağrıdan önce 0 değerine başlatılır.
[in,out] bufStart
Veri işaretçisine başvuru. İşleve girişte bufStart, okuyucu tarafından tüketilen son TLV veri baytından sonraki bir baytı işaret eder. Çıkışta, bufStart'ın ayrıştırılacak yeni TLV verilerinin ilk baytını işaret etmesi beklenir. Yeni işaretçi değeri, daha önce kullanılan verilerle aynı tamponda olabilir veya tamamen yeni bir tampona işaret edebilir.
[out] bufLen
İşlevin, döndürülen TLV veri baytı sayısına ayarlanması gereken imzalanmamış bir tam sayı başvurusu. Giriş TLV verilerinin sonuna ulaşıldıysa işlev bu değeri 0 olarak ayarlamalıdır.
Döndürülen Değerler
WEAVE_NO_ERROR
İşlev başarıyla daha fazla TLV verisi ürettiyse veya giriş verilerinin sonuna ulaşıldıysa (bu durumda bufLen 0 olarak ayarlanmalıdır).
other
İşlevin istenen verileri üretmesini engelleyen bir hata oluştuğunu belirten diğer Weave veya platforma özgü hata kodları.

Herkese açık özellikler

AppData

void * AppData

Uygulamaya özgü veriler için kullanılabilecek işaretçi alanı.

GetNextBuffer

GetNextBufferFunct GetNextBuffer

TLVReader nesnesi için giriş verileri oluşturacak bir işlevin işaretçisi.

NULL (varsayılan değer) değerine ayarlanırsa okuyucu, başka giriş verisi olmadığını varsayar.

GetNextBuffer, bir uygulama tarafından herhangi bir zamanda ayarlanabilir, ancak genellikle okuyucu başlatılırken ayarlanır.

GetNextBuffer işlevinin uygulanması hakkında ek bilgi almak 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ülü biçimde kodlanmış, profile özel bir etiketle karşılaştığında, ImplicitProfileId özelliğinin değerini etiketin varsayılan profil kimliği olarak kullanır.

Varsayılan olarak ImplicitProfileId özelliği kProfileIdNotSpecified şeklinde ayarlanmıştır. Dolaylı olarak kodlanmış etiketler içeren TLV'nin kodunu çözerken uygulamalar, bu tür etiketleri içeren TLV öğelerini okumadan önce ImplicitProfileId değerini ayarlamalıdır. Uygun profil kimliği genellikle konuşulan uygulamanın veya protokolün bağlamına bağlıdır.

ImplicitProfileId kProfileIdNotSpecified olarak ayarlandığında örtülü olarak kodlanmış bir etiketle karşılaşılırsa okuyucu WEAVE_ERROR_UNKNOWN_IMPLICIT_TLV_TAG hatası döndürür.

Korunan özellikler

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

Kamu işlevleri

CloseContainer

WEAVE_ERROR CloseContainer(
  TLVReader & containerReader
)

OpenContainer() çağrısından sonra TLV kapsayıcısının okunmasını tamamlar.

CloseContainer() yöntemi, OpenContainer() çağrısından sonra üst TLVReader nesnesinin durumunu geri yükler. Her OpenContainer() çağrısına karşılık gelen bir uygulama CloseContainer() çağrısına karşılık olarak, her iki yöntemde de aynı kapsayıcı okuyucuya referans iletmelidir.

CloseContainer() işlevi döndürüldüğünde, üst okuyucu, kapsayıcıyı izleyen ilk öğenin hemen önüne yerleştirilir. Bu noktadan itibaren uygulama, kalan öğeler arasında ilerlemek için Next() yöntemini kullanabilir.

Uygulamalar, temel kapsayıcıdaki tüm öğelerin okunup okunmadığına bakılmaksızın herhangi bir zamanda üst okuyucuda CloseContainer() işlevini çağırabilir. CloseContainer() çağrıldıktan sonra, uygulamanın kapsayıcı okuyucuyu "de-initial" (başlatıldı) olarak değerlendirmesi ve yeniden başlatmadan başka bir yerde kullanmaması gerekir.

Ayrıntılar
Parametreler
[in] containerReader
OpenContainer() yöntemi için sağlanan TLVReader nesnesine referans.
Döndürülen Değerler
WEAVE_NO_ERROR
Yöntem başarılı olup olmadığı.
WEAVE_ERROR_INCORRECT_STATE
Okuyucuda OpenContainer() çağrılmadıysa veya kapsayıcı okuyucu, OpenContainer() yöntemine iletilenle eşleşmiyorsa.
WEAVE_ERROR_TLV_UNDERRUN
Temel TLV kodlaması erken sona erip ermediyse.
WEAVE_ERROR_INVALID_TLV_ELEMENT
Okuyucu, geçersiz veya desteklenmeyen bir TLV öğe türüyle karşılaşırsa.
WEAVE_ERROR_INVALID_TLV_TAG
Okuyucu, geçersiz bağlamda bir TLV etiketiyle karşılaştıysa.
other
Yapılandırılmış GetNextBuffer() işlevi tarafından döndürülen diğer Weave veya platform hata kodları. Yalnızca GetNextBuffer NULL olmadığında mümkündür.

DupBytes

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

Geçerli baytın veya UTF8 dizesinin değerini içeren bir arabelleği 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şkilendirilmiş verilerin bir kopyasını döndürür. Arabelleğe ilişkin bellek, Malloc() ile elde edilir ve artık gerekli olmadığında, çağrıyı yapan tarafından free() ile serbest bırakılmalıdır.

Ayrıntılar
Parametreler
[out] buf
Başarıyla dataLen baytlık yığın ayrılmış arabelleğin atanacağı bir işaretçi referansı.
[out] dataLen
Başarılı olduğunda buf boyutu için bayt cinsinden depolama alanı referansı.
Döndürülen Değerler
WEAVE_NO_ERROR
Yöntem başarılı olup olmadığı.
WEAVE_ERROR_WRONG_TLV_TYPE
Geçerli öğe bir TLV baytı veya UTF8 dizesi değilse ya da okuyucu bir öğe üzerinde konumlanmamışsa.
WEAVE_ERROR_NO_MEMORY
Çıkış arabelleği için bellek tahsis edilemedi.
WEAVE_ERROR_TLV_UNDERRUN
Temel TLV kodlaması erken sona erip ermediyse.
WEAVE_ERROR_UNSUPPORTED_WEAVE_FEATURE
Hedef platform, Malloc() ve free() işlevlerini desteklemiyorsa.
other
Yapılandırılmış GetNextBuffer() işlevi tarafından döndürülen diğer Weave veya platform hata kodları. Yalnızca GetNextBuffer NULL olmadığında mümkündür.

DupString

WEAVE_ERROR DupString(
  char *& buf
)

Geçerli baytın veya UTF8 dizesinin boş sona ermiş 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ş sona ermiş bir kopyasını döndürür. Arabelleğe ilişkin bellek, Malloc() ile elde edilir ve artık gerekli olmadığında, çağrıyı yapan tarafından free() ile serbest bırakılmalıdır.

Ayrıntılar
Parametreler
[out] buf
Başarı üzerine yığın ayrılmış arabelleği atanacak işaretçi için bir referans.
Döndürülen Değerler
WEAVE_NO_ERROR
Yöntem başarılı olup olmadığı.
WEAVE_ERROR_WRONG_TLV_TYPE
Geçerli öğe bir TLV baytı veya UTF8 dizesi değilse ya da okuyucu bir öğe üzerinde konumlanmamışsa.
WEAVE_ERROR_NO_MEMORY
Çıkış arabelleği için bellek tahsis edilemedi.
WEAVE_ERROR_TLV_UNDERRUN
Temel TLV kodlaması erken sona erip ermediyse.
WEAVE_ERROR_UNSUPPORTED_WEAVE_FEATURE
Hedef platform, Malloc() ve free() işlevlerini desteklemiyorsa.
other
Yapılandırılmış GetNextBuffer() işlevi tarafından döndürülen diğer Weave veya platform hata kodları. Yalnızca GetNextBuffer NULL olmadığında mümkündür.

EnterContainer

WEAVE_ERROR EnterContainer(
  TLVType & outerContainerType
)

TLV kapsayıcı öğesinin üyelerini okumak için bir TLVReader nesnesi hazırlar.

EnterContainer() yöntemi, geçerli TLVReader nesnesini bir TLV kapsayıcısının (yapı, dizi veya yol) üye öğelerini okumaya başlayacak şekilde hazırlar. Uygulamaların her EnterContainer() çağrısı için ExitContainer() işlevine karşılık gelen bir çağrı yapması gerekir.

EnterContainer() çağrıldığında TLVReader nesnesi, okunacak kapsayıcı öğesine yerleştirilmelidir. Yöntem, kapsayıcıyı okurken okuyucunun bağlamını kaydetmek için kullanılacak bir TLVType değerine başvuruyu bağımsız değişken olarak alır.

EnterContainer() yöntemi döndürüldüğünde, okuyucu kapsayıcının ilk üyesinden hemen önce konumlandırılır. Next() işlevinin sürekli olarak çağrılması, okuyucuyu sona ulaşılıncaya kadar koleksiyon üyeleri arasında ilerletir ve bu noktada WEAVE_END_OF_TLV değerini döndürür.

Uygulama bir kapsayıcıyı okumayı bitirdikten sonra, ExitContainer() yöntemini çağırarak öğeleri kapsayıcıdan sonra okumaya devam edebilir.

Ayrıntılar
Parametreler
[out] outerContainerType
Okuyucunun bağlamını alacak bir TLVType değerine referans.
Döndürülen Değerler
WEAVE_NO_ERROR
Yöntem başarılı olup olmadığı.
WEAVE_ERROR_INCORRECT_STATE
Geçerli öğe bir kapsayıcı öğeye yerleştirilmemişse.

ExitContainer

WEAVE_ERROR ExitContainer(
  TLVType outerContainerType
)

Bir TLV kapsayıcısının okunmasını tamamlar ve kapsayıcıdan sonra öğeleri okumak için bir TLVReader nesnesi hazırlar.

ExitContainer() yöntemi, bir EnterContainer() çağrısından sonra TLVReader nesnesinin durumunu geri yükler. Uygulamaların her EnterContainer() çağrısına karşılık gelen bir çağrı yapması ve EnterContainer() yöntemi tarafından döndürülen bağlam değerini iletmesi gerekir.ExitContainer()

ExitContainer() işlevi döndürüldüğünde, okuyucu, kapsayıcıyı izleyen ilk öğenin hemen önüne yerleştirilir. Bu noktadan itibaren uygulama, kalan öğeler arasında ilerlemek için Next() yöntemini kullanabilir.

EnterContainer() çağrıldıktan sonra, uygulamalar temel kapsayıcıdaki tüm öğelerin okunup okunmadığına bakılmaksızın herhangi bir zamanda bir okuyucuda ExitContainer() işlevini çağırabilir.

Ayrıntılar
Parametreler
[in] outerContainerType
EnterContainer() yöntemi tarafından döndürülen TLVType değeri.
Döndürülen Değerler
WEAVE_NO_ERROR
Yöntem başarılı olup olmadığı.
WEAVE_ERROR_INCORRECT_STATE
Okuyucuda OpenContainer() çağrılmadıysa veya kapsayıcı okuyucu, OpenContainer() yöntemine iletilenle eşleşmiyorsa.
WEAVE_ERROR_TLV_UNDERRUN
Temel TLV kodlaması erken sona erip ermediyse.
WEAVE_ERROR_INVALID_TLV_ELEMENT
Okuyucu, geçersiz veya desteklenmeyen bir TLV öğe türüyle karşılaşırsa.
WEAVE_ERROR_INVALID_TLV_TAG
Okuyucu, geçersiz bağlamda bir TLV etiketiyle karşılaştıysa.
other
Yapılandırılmış GetNextBuffer() işlevi tarafından döndürülen diğer Weave veya platform hata kodları. Yalnızca GetNextBuffer NULL olmadığında mümkündür.

Get

WEAVE_ERROR Get(
  bool & v
)

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

Ayrıntılar
Parametreler
[out] v
Mevcut TLV öğesiyle ilişkilendirilen değeri alır.
Döndürülen Değerler
WEAVE_NO_ERROR
Yöntem başarılı olup olmadığı.
WEAVE_ERROR_WRONG_TLV_TYPE
Geçerli öğe TLV boole türünde değilse veya okuyucu bir öğe üzerinde konumlandırılmadıysa.

Get

WEAVE_ERROR Get(
  int8_t & v
)

Geçerli öğenin değerini 8 bit imzalı tam sayı olarak alın.

Kodlanmış tam sayı değeri, çıkış veri türünden büyükse sonuçta elde edilen değer kısaltılır.

Ayrıntılar
Parametreler
[out] v
Mevcut TLV öğesiyle ilişkilendirilen değeri alır.
Döndürülen Değerler
WEAVE_NO_ERROR
Yöntem başarılı olup olmadığı.
WEAVE_ERROR_WRONG_TLV_TYPE
Geçerli öğe, TLV tam sayı türünde (imzalı veya imzasız) değilse veya okuyucu bir öğeye yerleştirilmemişse.

Get

WEAVE_ERROR Get(
  int16_t & v
)

Geçerli öğenin değerini 16 bit imzalı tam sayı olarak alın.

Kodlanmış tam sayı değeri, çıkış veri türünden büyükse sonuçta elde edilen değer kısaltılır.

Ayrıntılar
Parametreler
[out] v
Mevcut TLV öğesiyle ilişkilendirilen değeri alır.
Döndürülen Değerler
WEAVE_NO_ERROR
Yöntem başarılı olup olmadığı.
WEAVE_ERROR_WRONG_TLV_TYPE
Geçerli öğe, TLV tam sayı türünde (imzalı veya imzasız) değilse veya okuyucu bir öğeye yerleştirilmemişse.

Get

WEAVE_ERROR Get(
  int32_t & v
)

Geçerli öğenin değerini 32 bit imzalı tam sayı olarak alın.

Kodlanmış tam sayı değeri, çıkış veri türünden büyükse sonuçta elde edilen değer kısaltılır.

Ayrıntılar
Parametreler
[out] v
Mevcut TLV öğesiyle ilişkilendirilen değeri alır.
Döndürülen Değerler
WEAVE_NO_ERROR
Yöntem başarılı olup olmadığı.
WEAVE_ERROR_WRONG_TLV_TYPE
Geçerli öğe, TLV tam sayı türünde (imzalı veya imzasız) değilse veya okuyucu bir öğeye yerleştirilmemişse.

Get

WEAVE_ERROR Get(
  int64_t & v
)

Geçerli öğenin değerini 64 bit imzalı tam sayı olarak alın.

Kodlanmış tam sayı değeri, çıkış veri türünden büyükse sonuçta elde edilen değer kısaltılır.

Ayrıntılar
Parametreler
[out] v
Mevcut TLV öğesiyle ilişkilendirilen değeri alır.
Döndürülen Değerler
WEAVE_NO_ERROR
Yöntem başarılı olup olmadığı.
WEAVE_ERROR_WRONG_TLV_TYPE
Geçerli öğe, TLV tam sayı türünde (imzalı veya imzasız) değilse veya okuyucu bir öğeye yerleştirilmemişse.

Get

WEAVE_ERROR Get(
  uint8_t & v
)

Geçerli öğenin değerini 8 bitlik imzasız tam sayı olarak alın.

Kodlanmış tam sayı değeri, çıkış veri türünden büyükse sonuçta elde edilen değer kısaltılır. Benzer şekilde, kodlanmış tam sayı değeri negatifse değer imzasız olarak dönüştürülür.

Ayrıntılar
Parametreler
[out] v
Mevcut TLV öğesiyle ilişkilendirilen değeri alır.
Döndürülen Değerler
WEAVE_NO_ERROR
Yöntem başarılı olup olmadığı.
WEAVE_ERROR_WRONG_TLV_TYPE
Geçerli öğe, TLV tam sayı türünde (imzalı veya imzasız) değilse veya okuyucu bir öğeye yerleştirilmemişse.

Get

WEAVE_ERROR Get(
  uint16_t & v
)

Geçerli öğenin değerini 16 bit imzasız tam sayı olarak alın.

Kodlanmış tam sayı değeri, çıkış veri türünden büyükse sonuçta elde edilen değer kısaltılır. Benzer şekilde, kodlanmış tam sayı değeri negatifse değer imzasız olarak dönüştürülür.

Ayrıntılar
Parametreler
[out] v
Mevcut TLV öğesiyle ilişkilendirilen değeri alır.
Döndürülen Değerler
WEAVE_NO_ERROR
Yöntem başarılı olup olmadığı.
WEAVE_ERROR_WRONG_TLV_TYPE
Geçerli öğe, TLV tam sayı türünde (imzalı veya imzasız) değilse veya okuyucu bir öğeye yerleştirilmemişse.

Get

WEAVE_ERROR Get(
  uint32_t & v
)

Geçerli öğenin değerini 32 bit imzalanmamış tam sayı olarak alın.

Kodlanmış tam sayı değeri, çıkış veri türünden büyükse sonuçta elde edilen değer kısaltılır. Benzer şekilde, kodlanmış tam sayı değeri negatifse değer imzasız olarak dönüştürülür.

Ayrıntılar
Parametreler
[out] v
Mevcut TLV öğesiyle ilişkilendirilen değeri alır.
Döndürülen Değerler
WEAVE_NO_ERROR
Yöntem başarılı olup olmadığı.
WEAVE_ERROR_WRONG_TLV_TYPE
Geçerli öğe, TLV tam sayı türünde (imzalı veya imzasız) değilse veya okuyucu bir öğeye yerleştirilmemişse.

Get

WEAVE_ERROR Get(
  uint64_t & v
)

Geçerli öğenin değerini 64 bit imzalanmamış tam sayı olarak alın.

Kodlanmış tam sayı değeri negatifse değer, imzasız hâline dönüştürülür.

Ayrıntılar
Parametreler
[out] v
Mevcut TLV öğesiyle ilişkilendirilen değeri alır.
Döndürülen Değerler
WEAVE_NO_ERROR
Yöntem başarılı olup olmadığı.
WEAVE_ERROR_WRONG_TLV_TYPE
Geçerli öğe, TLV tam sayı türünde (imzalı veya imzasız) değilse veya okuyucu bir öğeye yerleştirilmemişse.

Get

WEAVE_ERROR Get(
  float & v
)

Get

WEAVE_ERROR Get(
  double & v
)

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

Ayrıntılar
Parametreler
[out] v
Mevcut TLV öğesiyle ilişkilendirilen değeri alır.
Döndürülen Değerler
WEAVE_NO_ERROR
Yöntem başarılı olup olmadığı.
WEAVE_ERROR_WRONG_TLV_TYPE
Geçerli öğe, TLV kayan nokta türünde değilse veya okuyucu bir öğe üzerinde değilse.

GetBufHandle

uintptr_t GetBufHandle(
  void
) const 

GetBytes

WEAVE_ERROR GetBytes(
  uint8_t *buf,
  uint32_t bufSize
)

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

Gerekli giriş arabelleği boyutunu belirlemek için GetBytes() yöntemini çağırmadan önce GetLength() yöntemini çağırın.

Ayrıntılar
Parametreler
[in] buf
Dize verilerini almak için bir arabelleğin işaretçisi.
[in] bufSize
buf tarafından işaret edilen arabelleğin bayt cinsinden boyutu.
Döndürülen Değerler
WEAVE_NO_ERROR
Yöntem başarılı olup olmadığı.
WEAVE_ERROR_WRONG_TLV_TYPE
Geçerli öğe bir TLV baytı veya UTF8 dizesi değilse ya da okuyucu bir öğe üzerinde konumlanmamışsa.
WEAVE_ERROR_BUFFER_TOO_SMALL
Sağlanan arabellek, geçerli öğeyle ilişkili verileri tutmak için çok küçükse.
WEAVE_ERROR_TLV_UNDERRUN
Temel TLV kodlaması erken sona erip ermediyse.
other
Yapılandırılmış GetNextBuffer() işlevi tarafından döndürülen diğer Weave veya platform hata kodları. Yalnızca GetNextBuffer NULL olmadığında mümkündür.

GetContainerType

TLVType GetContainerType(
  void
) const 

TLVReader öğesinin şu anda okumakta olduğu kapsayıcının türünü döndürür.

GetContainerType() yöntemi, TLVReader'ın içinde bulunduğu TLV kapsayıcısının türünü döndürür. TLVReader, bir TLV kodlamasının en dış düzeyine yerleştirilirse (yani, en dıştaki TLV öğesinin öncesinde, üzerine veya sonrasında) yöntem, kTLVType_NotSpecified değerini döndürür.

Ayrıntılar
İadeler
Geçerli kapsayıcının TLVType öğesi veya TLVReader bir kapsayıcı içine yerleştirilmemişse kTLVType_NotSpecified.

GetControlByte

uint16_t GetControlByte(
  void
) const 

Geçerli TLV öğesiyle ilişkilendirilmiş kontrol baytını döndürür.

İdeal olarak, hiç kimsenin denetim baytını bilmesi gerekmez ve TLV'nin yalnızca dahili uygulaması bu bayta erişebilmelidir. Ancak yine de, kontrol baytına erişebilmek, TLVDebugUtilities (TLV arabellek içeriğini yazdırırken etiket kontrol baytının kodunu çözmeye çalışan) hata ayıklama amacıyla hata ayıklama açısından yararlıdır.

Ayrıntılar
İadeler
Mevcut TLV öğesiyle ilişkili kontrol baytını içeren imzalanmamış bir tam sayı. Okuyucu, bir öğe üzerine konumlandırılmazsa kTLVControlByte_NotSpecified hatası döndürülür.

GetDataPtr

WEAVE_ERROR GetDataPtr(
  const uint8_t *& data
)

Bir TLV baytının veya UTF8 dize öğesinin ilk kodlanmış baytına işaretçi alın.

Bu yöntem, temel giriş arabelleğindeki kodlanmış dize değerine doğrudan bir işaretçi döndürür. Yöntem başarılı olmak için dize değerinin bütününün tek bir arabellekte mevcut olmasını gerektirir. Aksi takdirde, yöntem WEAVE_ERROR_TLV_UNDERRUN değerini döndürür. Bu, birden fazla bitişik olmayan arabelleğe ait veriler okunurken sınırlı kullanım yöntemi sağlar.

Ayrıntılar
Parametreler
[out] data
Temel dize verilerine işaretçi alacak bir tutarlılık işaretçisine başvuru.
Döndürülen Değerler
WEAVE_NO_ERROR
Yöntem başarılı olup olmadığı.
WEAVE_ERROR_WRONG_TLV_TYPE
Geçerli öğe bir TLV baytı veya UTF8 dizesi değilse ya da okuyucu bir öğe üzerinde konumlanmamışsa.
WEAVE_ERROR_TLV_UNDERRUN
Temel TLV kodlaması erken sona erdiyse veya geçerli dize öğesinin değeri tek bir bitişik arabellekte yer almıyorsa.
other
Yapılandırılmış GetNextBuffer() işlevi tarafından döndürülen diğer Weave veya platform hata kodları. Yalnızca GetNextBuffer NULL olmadığında mümkündür.

GetLength

uint32_t GetLength(
  void
) const 

Mevcut TLV öğesiyle ilişkili verilerin uzunluğunu döndürür.

Veri uzunluğu yalnızca UTF8 dizesi veya bayt dizesindeki öğ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
Geçerli TLV öğesiyle ilişkili verilerin uzunluğu (bayt cinsinden); geçerli öğe bir UTF8 dizesi ya da bayt dizesi değilse veya okuyucu bir öğede konumlandırılmamışsa 0.

GetLengthRead

uint32_t GetLengthRead(
  void
) const 

Okuyucunun başlatılmasından bu yana okunan toplam bayt sayısını döndürür.

Ayrıntılar
İadeler
Okuyucunun başlatılmasından bu yana okunan toplam bayt sayısı.

GetReadPoint

const uint8_t * GetReadPoint(
  void
) const 

Temel giriş arabelleğinde, okuyucunun geçerli konumuna karşılık gelen noktayı getirir.

Ayrıntılar
İadeler
Okuyucunun mevcut konumuna karşılık gelen temel giriş arabelleğine gösterilen 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ın veya UTF8 dize öğesinin değerini boş sonlandırılmış dize olarak alın.

Gerekli giriş arabelleği boyutunu belirlemek için GetBytes() yöntemini çağırmadan önce GetLength() yöntemini çağırın. Girdi arabelleği, null karakteri içerecek şekilde dize uzunluğundan en az bir bayt büyük olmalıdır.

Ayrıntılar
Parametreler
[in] buf
Bayt dizesi verilerini almak için bir arabelleğin işaretçisi.
[in] bufSize
buf tarafından işaret edilen arabelleğin bayt cinsinden boyutu.
Döndürülen Değerler
WEAVE_NO_ERROR
Yöntem başarılı olup olmadığı.
WEAVE_ERROR_WRONG_TLV_TYPE
Geçerli öğe bir TLV baytı veya UTF8 dizesi değilse ya da okuyucu bir öğe üzerinde konumlanmamışsa.
WEAVE_ERROR_BUFFER_TOO_SMALL
Sağlanan arabellek, geçerli öğeyle ilişkili verileri tutmak için çok küçükse.
WEAVE_ERROR_TLV_UNDERRUN
Temel TLV kodlaması erken sona erip ermediyse.
other
Yapılandırılmış GetNextBuffer() işlevi tarafından döndürülen diğer Weave veya platform hata kodları. Yalnızca GetNextBuffer NULL olmadığında mümkündür.

GetTag

uint64_t GetTag(
  void
) const 

Geçerli TLV öğesiyle ilişkilendirilen etiketi döndürür.

GetTag() tarafından döndürülen değer, etiketin türünü belirlemek ve çeşitli etiket alanı değerlerini ayıklamak için etiket yardımcı programı işlevleriyle (IsProfileTag(), IsContextTag(), ProfileIdFromTag() vb.) birlikte kullanılabilir.

Ayrıntılar
İadeler
Geçerli TLV öğesiyle ilişkili etiket hakkında bilgi içeren imzasız bir tam sayı.

GetType

TLVType GetType(
  void
) const 

Geçerli TLV öğesinin türünü döndürür.

Ayrıntılar
İadeler
Geçerli TLV öğesinin veri türünü açıklayan bir TLVType değeri. Okuyucu bir TLV öğesine yerleştirilmemişse döndürülen değer kTLVType_NotSpecified olur.

Başlat

void Init(
  const TLVReader & aReader
)

Başka bir TLVReader nesnesinden bir TLVReader nesnesi başlatır.

Ayrıntılar
Parametreler
[in] aReader
Bunu başlatmaya yönelik TLVReader için salt okunur bir referans.

Başlat

void Init(
  const uint8_t *data,
  uint32_t dataLen
)

Tek bir giriş arabelleğinden okumak için bir TLVReader nesnesi başlatır.

Ayrıntılar
Parametreler
[in] data
Ayrıştırılacak TLV verilerini içeren bir arabelleğin işaretçisi.
[in] dataLen
Ayrıştırılacak TLV verilerinin uzunluğu.

Başlat

void Init(
  PacketBuffer *buf,
  uint32_t maxLen
)

Tek bir PacketBuffer'dan okumak için bir TLVReader nesnesi başlatır.

Ayrıştırma arabelleğin başlangıç konumundan (buf->DataStart()) başlar ve arabellekteki verilerin sonuna (buf->Datalen() ile belirtildiği gibi) veya maxLen baytları ayrıştırılana kadar devam eder.

Ayrıntılar
Parametreler
[in] buf
Ayrıştırılacak TLV verilerini içeren bir PacketBuffer işaretçisi.
[in] maxLen
Ayrıştırılacak maksimum bayt. Varsayılan olarak giriş arabelleğindeki veri miktarı ayarlanır.

Başlat

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

Bir veya daha fazla PacketBuffers'dan okumak için bir TLVReader nesnesi başlatır.

Ayrıştırma, ilk arabelleğin başlangıç konumunda (buf->DataStart()) başlar. allowDiscontiguousBuffers doğru değerine ayarlanırsa okuyucu, Next() işaretçileri tarafından bağlanan arabellek zincirinde ilerler. Arabellek zincirindeki tüm veriler tüketilene (buf->Datalen() ile belirtildiği gibi) veya maxLen baytları ayrıştırılana kadar ayrıştırma devam eder.

Ayrıntılar
Parametreler
[in] buf
Ayrıştırılacak TLV verilerini içeren bir PacketBuffer işaretçisi.
[in] maxLen
Ayrıştırılacak maksimum bayt. Varsayılan değer, giriş arabellek zincirindeki toplam veri miktarıdır.
[in] allowDiscontiguousBuffers
Doğru değerine ayarlanırsa geçerli arabellekteki tüm veriler kullanıldıktan sonra zincirdeki bir sonraki arabelleğe geçin. Yanlış değerine ayarlanırsa ilk arabelleğin sonunda ayrıştırmayı durdurun.

Sonraki

WEAVE_ERROR Next(
  void
)

TLVReader nesnesini okunacak sonraki TLV öğesine ilerletir.

Next() yöntemi, okuyucu nesnesini, aynı kapsama bağlamında yer alan bir TLV kodlamasındaki sonraki öğeye konumlandırır. Özellikle, okuyucu bir TLV kodlamasının en dış düzeyinde konumlandırılmışsa Next() fonksiyonunun çağrılması okuyucuyu bir sonraki, en üstteki öğeye ilerletir. Okuyucu bir TLV kapsayıcı öğesinin (yapı, dizi veya yol) içine yerleştirilmişse Next() işlevinin çağrılması okuyucuyu kapsayıcının bir sonraki üye öğesine ilerletir.

Next(), okuyucu hareketini geçerli kapsayıcı bağlamıyla sınırladığından, okuyucu bir kapsayıcı öğesine yerleştirildiğinde Next() çağrısı, kapsayıcıdan üzerine geçerek üye öğeleri (ve iç içe yerleştirilmiş herhangi bir kapsayıcının üyeleri) kapsayıcıdan sonraki ilk öğeye ulaşana kadar atlanır.

Belirli bir kapsama bağlamında başka öğe yoksa Next() yöntemi WEAVE_END_OF_TLV hatası döndürür ve okuyucunun konumu değişmez.

Ayrıntılar
Döndürülen Değerler
WEAVE_NO_ERROR
Okuyucunun yeni bir öğe üzerine başarılı bir şekilde yerleştirilip yerleştirilmediği.
WEAVE_END_OF_TLV
Başka öğe yoksa
WEAVE_ERROR_TLV_UNDERRUN
Temel TLV kodlaması erken sona erip ermediyse.
WEAVE_ERROR_INVALID_TLV_ELEMENT
Okuyucu, geçersiz veya desteklenmeyen bir TLV öğe türüyle karşılaşırsa.
WEAVE_ERROR_INVALID_TLV_TAG
Okuyucu, geçersiz bağlamda bir TLV etiketiyle karşılaştıysa.
WEAVE_ERROR_UNKNOWN_IMPLICIT_TLV_TAG
Okuyucu, karşılık gelen profil kimliğinin bilinmediği örtülü olarak kodlanmış bir TLV etiketiyle karşılaştıysa.
other
Yapılandırılmış GetNextBuffer() işlevi tarafından döndürülen diğer Weave veya platform hata kodları. Yalnızca GetNextBuffer NULL olmadığında mümkündür.

Sonraki

WEAVE_ERROR Next(
  TLVType expectedType,
  uint64_t expectedTag
)

TLVReader nesnesini, yeni öğenin türünü ve etiketini onaylayarak okunacak bir sonraki TLV öğesine ilerletir.

Next(TLVType completedType, uint64_t requestedTag) yöntemi, Next() ile aynı davranışa sahip olan pratik bir yöntemdir. Ancak yeni TLV öğesinin türü ve etiketinin, sağlanan bağımsız değişkenlerle eşleştiğini de doğrular.

Ayrıntılar
Parametreler
[in] expectedType
Sonraki öğe için beklenen veri türü.
[in] expectedTag
Sonraki öğe için beklenen etiket.
Döndürülen Değerler
WEAVE_NO_ERROR
Okuyucunun yeni bir öğe üzerine başarılı bir şekilde yerleştirilip yerleştirilmediği.
WEAVE_END_OF_TLV
Başka öğe yoksa
WEAVE_ERROR_WRONG_TLV_TYPE
Yeni öğenin türü, expectedType bağımsız değişkeninin değeriyle eşleşmiyorsa.
WEAVE_ERROR_UNEXPECTED_TLV_ELEMENT
Yeni öğeyle ilişkilendirilen etiket, expectedTag bağımsız değişkeninin değeriyle eşleşmiyorsa.
WEAVE_ERROR_TLV_UNDERRUN
Temel TLV kodlaması erken sona erip ermediyse.
WEAVE_ERROR_INVALID_TLV_ELEMENT
Okuyucu, geçersiz veya desteklenmeyen bir TLV öğe türüyle karşılaşırsa.
WEAVE_ERROR_INVALID_TLV_TAG
Okuyucu, geçersiz bağlamda bir TLV etiketiyle karşılaştıysa.
other
Yapılandırılmış GetNextBuffer() işlevi tarafından döndürülen diğer Weave veya platform hata kodları. Yalnızca GetNextBuffer NULL olmadığında mümkündür.

OpenContainer

WEAVE_ERROR OpenContainer(
  TLVReader & containerReader
)

Bir TLV kapsayıcı öğesinin üyelerini okumak için yeni bir TLVReader nesnesi başlatır.

OpenContainer() yöntemi, bir TLV kapsayıcısının (yapı, dizi veya yol) üye öğelerini okumak için yeni bir TLVReader nesnesi başlatır. OpenContainer() çağrıldığında mevcut TLVReader nesnesi, okunması için kapsayıcı öğesine yerleştirilmelidir. Yöntem, tek bağımsız değişkeni olarak kapsayıcıyı okumak için başlatılacak yeni bir okuyucuya başvurur. Bu okuyucu kapsayıcı okuyucu, OpenContainer() işlevi çağrılan okuyucu ise üst okuyucu olarak bilinir.

OpenContainer() yöntemi döndüğünde, kapsayıcı okuyucu kapsayıcının ilk üyesinden hemen önce konumlandırılır. Kapsayıcı okuyucuda Next() çağrısı yapıldığında koleksiyon üyeleri arasında sona ulaşılana kadar ilerler ve bu noktada okuyucu WEAVE_END_OF_TLV sonucunu döndürür.

Kapsayıcı okuyucu açıkken uygulamalar, üst okuyucuda çağrı yapmamalı veya durumunu başka bir şekilde değiştirmemelidir. Bir uygulama kapsayıcı okuyucuyu kullanmayı bitirdikten sonra, üst okuyucuda CloseContainer() işlevini çağırarak kapsayıcı okuyucuyu bağımsız değişken olarak geçirerek kapatmalıdır. Uygulamalar, temel kapsayıcıda bulunan tüm öğeleri okumadan, herhangi bir noktada kapsayıcı okuyucuyu kapatabilir. Kapsayıcı okuyucu kapatıldıktan sonra uygulamalar üst okuyucuyu kullanmaya devam edebilir.

Kapsayıcı okuyucu, üst okuyucudan çeşitli yapılandırma özelliklerini devralır. Desteklenen biçimler şunlardır:

  • Örtülü profil kimliği (ImplicitProfileId)
  • Uygulama veri işaretçisi (OAuth)
  • GetNextBuffer işlevi işaretçisi

Ayrıntılar
Parametreler
[out] containerReader
Geçerli kapsayıcı öğesinin üyelerini okumak için başlatılacak TLVReader nesnesine referans. Sağlanan nesneyle ilişkilendirilen tüm verilerin üzerine yazılır.
Döndürülen Değerler
WEAVE_NO_ERROR
Yöntem başarılı olup olmadığı.
WEAVE_ERROR_INCORRECT_STATE
Geçerli öğe bir kapsayıcı öğeye yerleştirilmemişse.

Atla

WEAVE_ERROR Skip(
  void
)

TLVReader nesnesini, geçerli TLV öğesinin hemen sonrasına ilerletir.

Jump() yöntemi, okuyucu nesnesini geçerli TLV öğesinden hemen sonra konumlandırır. Böylece sonraki bir Next() çağrısı, okuyucuyu bir sonraki öğeye ilerletir. Next() işlevinde olduğu gibi okuyucu, çağrı sırasında bir kapsayıcı öğesine yerleştirilmişse kapsayıcının üyeleri atlanır. Okuyucu herhangi bir öğenin üzerine yerleştirilmezse konumu değişmez.

Ayrıntılar
Döndürülen Değerler
WEAVE_NO_ERROR
Okuyucunun yeni bir öğe üzerine başarılı bir şekilde yerleştirilip yerleştirilmediği.
WEAVE_END_OF_TLV
Başka öğe yoksa
WEAVE_ERROR_TLV_UNDERRUN
Temel TLV kodlaması erken sona erip ermediyse.
WEAVE_ERROR_INVALID_TLV_ELEMENT
Okuyucu, geçersiz veya desteklenmeyen bir TLV öğe türüyle karşılaşırsa.
WEAVE_ERROR_INVALID_TLV_TAG
Okuyucu, geçersiz bağlamda bir TLV etiketiyle karşılaştıysa.
other
Yapılandırılmış GetNextBuffer() işlevi tarafından döndürülen diğer Weave veya platform hata kodları. Yalnızca GetNextBuffer NULL olmadığında mümkündür.

VerifyEndOfContainer

WEAVE_ERROR VerifyEndOfContainer(
  void
)

TVLReader nesnesinin bir TLV kapsayıcısının sonunda olduğunu doğrular.

VerifyEndOfContainer() yöntemi, geçerli TLV kapsayıcısında okunacak başka TLV öğesi olmadığını doğrular. Bu, Next() işlevini çağırmaya ve WEAVE_END_OF_TLV döndürülen değeri kontrol etmeye eşdeğer bir kullanım yöntemidir.

Ayrıntılar
Döndürülen Değerler
WEAVE_NO_ERROR
Okunacak başka TLV öğesi yoksa.
WEAVE_ERROR_UNEXPECTED_TLV_ELEMENT
Koleksiyonda başka bir TLV öğesi bulunup bulunmadığı.
WEAVE_ERROR_TLV_UNDERRUN
Temel TLV kodlaması erken sona erip ermediyse.
WEAVE_ERROR_INVALID_TLV_ELEMENT
Okuyucu, geçersiz veya desteklenmeyen bir TLV öğe türüyle karşılaşırsa.
WEAVE_ERROR_INVALID_TLV_TAG
Okuyucu, geçersiz bağlamda bir TLV etiketiyle karşılaştıysa.
other
Yapılandırılmış GetNextBuffer() işlevi tarafından döndürülen diğer Weave veya platform hata kodları. Yalnızca GetNextBuffer NULL olmadığında mümkündür.

Korunan işlevler

ClearElementState

void ClearElementState(
  void
)

TLVReader öğesinin durumunu temizleyin.

Bu yöntem, okuyucuyu ilk TLV'den önce, TLV'ler arasında veya son TLV'den sonra konumlandırmak için kullanılır.

ElementType

TLVElementType ElementType(
  void
) const 

Bu, mControlByte'tan TLVElementType değerini döndüren özel bir yöntemdir.

EnsureData

WEAVE_ERROR EnsureData(
  WEAVE_ERROR noDataErr
)

GetElementHeadLength

WEAVE_ERROR GetElementHeadLength(
  uint8_t & elemHeadBytes
) const 

Bu, TLV öğe kafasının uzunluğunu hesaplamak için kullanılan gizli bir yöntemdir.

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
)

Mevcut TLV'de yer alan verileri, hedef arabelleği olmadan okuyarak atlayın.

Ayrıntılar
Döndürülen Değerler
WEAVE_NO_ERROR
Okuyucu, verilerin sonunda başarıyla konumlandırılıp konumlandırılmadığı
other
Yapılandırılmış GetNextBuffer() işlevi tarafından döndürülen diğer Weave veya platform hata kodları. Yalnızca GetNextBuffer NULL olmadığında mümkündür.

SkipToEndOfContainer

WEAVE_ERROR SkipToEndOfContainer(
  void
)

VerifyElement

WEAVE_ERROR VerifyElement(
  void
)

Korunan statik işlevler

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
)