nl::Weave::TLV::TLVReader

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

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

Özet

TLVReader, Weave TLV verileri için yalnızca ileriye dönük, "alınabilir" bir ayrıştırıcı uygular. TLVReader nesnesi, bir TLV öğesi dizisini yinelemek ve bunların içeriklerini yorumlamak için kullanılabilen bir imleç görevi görür. Bir öğe üzerine konumlandırılan uygulamalar, mevcut öğenin türünü ve etiketini sorgulamak ve ilişkili herhangi bir değeri ayıklamak için okuyucunun Get() yöntemlerine çağrı yapabilir. Bir öğeden öğeye ilerlemek için okuyucunun Next() yöntemi kullanılır.

TLVReader nesnesi her zaman bir TLV öğesinin öncesinde, üzerine veya sonrasında konumlandırılır. İlk kez başlatıldığında, bir TLVReader kodlamanın ilk öğesinden hemen önce konumlandırılır. Okumaya başlamak için bir uygulamanın, okuyucuyu ilk öğeye konumlandırmak amacıyla Next() yöntemine bir ilk çağrı yapması gerekir. Bir kapsayıcı öğesiyle karşılaşıldığında bir yapı, dizi veya yol ile kapsayıcının içeriğini yinelemek için OpenContainer() ya da 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 (CloseContainer() / ExitContainer() aracılığıyla) kadar 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 PacketBuffers zincirinden ayrıştırabilir. Buna ek olarak, uygulamalar rastgele bir kaynaktan okuyucuya veri aktarmak için bir GetNextBuffer işlevi sağlayabilir (ör. olması gerekir.

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 özel veriler için kullanılabilecek bir işaretçi alanıdır.
GetNextBuffer
TLVReader nesnesi için giriş verileri üretecek 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 *

Herkese açık işlevler

CloseContainer(TLVReader & containerReader)
OpenContainer() çağrısından sonra bir 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 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)
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 bir bool türü olarak alın.
Get(int8_t & v)
Geçerli öğenin değerini 8 bit imzalı bir tam sayı biçiminde alın.
Get(int16_t & v)
Geçerli öğenin değerini 16 bit imzalı tam sayı biçiminde alın.
Get(int32_t & v)
Geçerli öğenin değerini 32 bit imzalı tam sayı biçiminde alın.
Get(int64_t & v)
Geçerli öğenin değerini 64 bit imzalı tam sayı biçiminde alın.
Get(uint8_t & v)
Geçerli öğenin değerini 8 bitlik işaretsiz bir tam sayı biçiminde alın.
Get(uint16_t & v)
Geçerli öğenin değerini 16 bitlik imzasız bir tam sayı olarak alın.
Get(uint32_t & v)
Geçerli öğenin değerini 32 bitlik imzasız bir tam sayı olarak alın.
Get(uint64_t & v)
Geçerli öğenin değerini 64 bitlik imzasız bir tam sayı olarak alın.
Get(float & v)
Get(double & v)
Geçerli öğenin değerini çift duyarlıklı kayan nokta sayı olarak alın.
GetBufHandle(void) const
uintptr_t
GetBytes(uint8_t *buf, uint32_t bufSize)
Geçerli bayt veya UTF8 dize öğesinin değerini alın.
GetContainerType(void) const
TLVReader'ın 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ı veya UTF8 dize öğesinin ilk kodlanmış baytına işaret eden bir işaretçi alın.
GetLength(void) const
uint32_t
Geçerli TLV öğesiyle ilişkilendirilmiş verilerin uzunluğunu döndürür.
GetLengthRead(void) const
uint32_t
Okuyucu başlatıldıktan sonra okunan toplam bayt sayısını döndürür.
GetReadPoint(void) const
const uint8_t *
Temel giriş arabelleğinde, okuyucunun mevcut konumuna karşılık gelen 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ın veya UTF8 dize öğesinin değerini, boş olarak sonlandırılmış bir dize olarak alın.
GetTag(void) const
uint64_t
Geçerli TLV öğesiyle ilişkilendirilmiş 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 nesnesini başlatır.
Init(const uint8_t *data, uint32_t dataLen)
void
Tek bir giriş arabelleğinden okunacak bir TLVReader nesnesini başlatır.
Init(PacketBuffer *buf, uint32_t maxLen)
void
Tek bir PacketBuffer'dan okunacak bir TLVReader nesnesini başlatır.
Init(PacketBuffer *buf, uint32_t maxLen, bool allowDiscontiguousBuffers)
void
Bir veya daha fazla PacketBuffers'dan okunması için bir TLVReader nesnesini başlatır.
Next(void)
TLVReader nesnesini, okunacak bir 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 nesnesini 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'ın durumunu temizleyin.
ElementType(void) const
TLVElementType
Bu, mControlByte'tan TLVElementType döndüren gizli bir yöntemdir.
EnsureData(WEAVE_ERROR noDataErr)
GetElementHeadLength(uint8_t & elemHeadBytes) const
Bu, TLV öğe başlığı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 arabellek olmadan okuyarak bu verileri 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ı yapıldığında, işlevin okuyucuya daha fazla veri olmadığını ayrıştırması veya bunu bildirmesi için ek veriler üretmesi beklenir.

Ayrıntılar
Parametreler
[in] reader
Giriş verilerini isteyen TLVReader nesnesine bir referans.
[in,out] bufHandle
İşlevin, çağrılar arasında bağlam verilerini depolamak için kullanabileceği bir uintptr_t değerine referans. Bu değer, ilk çağrıdan önce 0 olarak başlatılır.
[in,out] bufStart
Bir veri işaretçisine başvuru. İşleve girişte bufStart, okuyucu tarafından kullanılan son TLV veri baytının ötesindeki 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ı tampon içinde olabilir veya tamamen yeni bir arabelleğe işaret edebilir.
[out] bufLen
İşlevin, döndürülen TLV veri baytlarının sayısına ayarlanması gereken imzalanmamış bir tam sayı referansı. TLV veri girişinin sonuna ulaşıldıysa işlev, bu değeri 0 olarak ayarlamalıdır.
Değerleri Döndür
WEAVE_NO_ERROR
İşlev daha fazla TLV verisi ürettiyse veya giriş verilerinin sonuna ulaşıldıysa (bu durumda bufLen değeri 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 özel veriler için kullanılabilecek bir işaretçi alanıdır.

GetNextBuffer

GetNextBufferFunct GetNextBuffer

TLVReader nesnesi için giriş verileri üretecek bir işlevin işaretçisi.

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

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

GetNextBuffer işlevini uygulama hakkında daha fazla 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, kapalı formda kodlanmış profile özgü bir etiketle karşılaştığında, etiket için varsayılan profil kimliği olarak ImplicitProfileId özelliğinin değerini kullanır.

Varsayılan olarak ImplicitProfileId özelliği kProfileIdNotSpecified olarak ayarlanır. Dolaylı olarak kodlanmış etiketler içeren TLV'nin kodunu çözerken uygulamalar bu tür etiketlere sahip 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şı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

Herkese açık işlevler

CloseContainer

WEAVE_ERROR CloseContainer(
  TLVReader & containerReader
)

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

CloseContainer() yöntemi, OpenContainer() çağrısından sonra bir üst TLVReader nesnesinin durumunu geri yükler. OpenContainer() uygulamalarına yapılan her çağrı, her iki yönteme de aynı kapsayıcı okuyucuya başvuru ileterek CloseContainer() çağrısına karşılık gelen bir çağrı yapmalıdır.

CloseContainer() döndürüldüğünde üst okuyucu, kapsayıcıyı takip eden ilk öğenin hemen önüne yerleştirilir. Bu noktadan sonra, bir uygulama kalan öğelerde ilerlemek için Next() yöntemini kullanabilir.

Uygulamalar, temel kapsayıcıdaki tüm öğelerin okunmuş olup olmadığı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-başlatılmış" olarak değerlendirmesi gerekir ve yeniden başlatmadan daha fazla kullanılmamalıdır.

Ayrıntılar
Parametreler
[in] containerReader
TLVReader yöntemine sağlanan OpenContainer() nesnesine başvuru.
Değerleri Döndür
WEAVE_NO_ERROR
Yöntem başarılı olursa.
WEAVE_ERROR_INCORRECT_STATE
Okuyucuda OpenContainer() çağrılmadıysa veya kapsayıcı okuyucu, OpenContainer() yöntemine geçirilen kapsayıcı okuyucuyla eşleşmiyorsa.
WEAVE_ERROR_TLV_UNDERRUN
Temel TLV kodlaması erken sona erdiyse.
WEAVE_ERROR_INVALID_TLV_ELEMENT
Okuyucu geçersiz veya desteklenmeyen bir TLV öğe türüyle karşılaştıysa.
WEAVE_ERROR_INVALID_TLV_TAG
Okuyucu, geçersiz bir bağlamda TLV etiketiyle karşılaşırsa.
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 kullanılabilir.

DupBytes

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şkilendirilmiş verilerin bir kopyasını döndürür. Arabellek belleği, Malloc() ile alınır ve artık gerekli olmadığında çağrı tarafından free() ile serbest bırakılmalıdır.

Ayrıntılar
Parametreler
[out] buf
Başarılı olduğunda, yığınla ayrılmış dataLen baytlık bir arabelleğin atanacağı işaretçiye referans.
[out] dataLen
Başarılı olarak buf boyutu için bayt cinsinden depolama alanına referans.
Değerleri Döndür
WEAVE_NO_ERROR
Yöntem başarılı olursa.
WEAVE_ERROR_WRONG_TLV_TYPE
Geçerli öğe bir TLV baytı veya UTF8 dizesi değilse ya da okuyucu, bir öğede konumlandırılmadıysa.
WEAVE_ERROR_NO_MEMORY
Çıkış arabelleği için bellek ayrılamadı.
WEAVE_ERROR_TLV_UNDERRUN
Temel TLV kodlaması erken sona erdiyse.
WEAVE_ERROR_UNSUPPORTED_WEAVE_FEATURE
Hedef platform AVMoc() 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 kullanılabilir.

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şkilendirilmiş verilerin boş sonlandırılmış bir kopyasını döndürür. Arabellek belleği, Malloc() ile alınır ve artık gerekli olmadığında çağrı tarafından free() ile serbest bırakılmalıdır.

Ayrıntılar
Parametreler
[out] buf
Başarı elde edildiğinde, yığın ayrılmış bir arabelleğin atanacağı işaretçiye referans.
Değerleri Döndür
WEAVE_NO_ERROR
Yöntem başarılı olursa.
WEAVE_ERROR_WRONG_TLV_TYPE
Geçerli öğe bir TLV baytı veya UTF8 dizesi değilse ya da okuyucu, bir öğede konumlandırılmadıysa.
WEAVE_ERROR_NO_MEMORY
Çıkış arabelleği için bellek ayrılamadı.
WEAVE_ERROR_TLV_UNDERRUN
Temel TLV kodlaması erken sona erdiyse.
WEAVE_ERROR_UNSUPPORTED_WEAVE_FEATURE
Hedef platform AVMoc() 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 kullanılabilir.

EnterContainer

WEAVE_ERROR EnterContainer(
  TLVType & outerContainerType
)

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

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

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

EnterContainer() yöntemi döndüğünde okuyucu, kapsayıcının ilk üyesinden hemen önce konumlandırılır. Next() tekrarlı bir şekilde çağrılması durumunda, okuyucu, koleksiyonun sonuna ulaşılıncaya kadar koleksiyonun üyeleri arasında ilerler. Bu noktada okuyucu, WEAVE_END_OF_TLV değerini döndürür.

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

Ayrıntılar
Parametreler
[out] outerContainerType
Okuyucunun bağlamını alacak bir TLVType değerine yapılan referans.
Değerleri Döndür
WEAVE_NO_ERROR
Yöntem başarılı olursa.
WEAVE_ERROR_INCORRECT_STATE
Geçerli öğe, bir kapsayıcı öğede yer almıyorsa.

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, EnterContainer() çağrısından sonra bir TLVReader nesnesinin durumunu geri yükler. EnterContainer() uygulamalarına yapılan her çağrının, EnterContainer() yöntemi tarafından döndürülen bağlam değerini ileterek ExitContainer() uygulamasına karşılık gelen bir çağrı yapması gerekir.

ExitContainer() döndürüldüğünde okuyucu, kapsayıcıyı takip eden ilk öğeden hemen önce konumlandırılır. Bu noktadan sonra, bir uygulama kalan öğelerde ilerlemek için Next() yöntemini kullanabilir.

EnterContainer() çağrıldıktan sonra, uygulamalar temel kapsayıcıdaki tüm öğelerin okunmuş olup olmadığı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.
Değerleri Döndür
WEAVE_NO_ERROR
Yöntem başarılı olursa.
WEAVE_ERROR_INCORRECT_STATE
Okuyucuda OpenContainer() çağrılmadıysa veya kapsayıcı okuyucu, OpenContainer() yöntemine geçirilen kapsayıcı okuyucuyla eşleşmiyorsa.
WEAVE_ERROR_TLV_UNDERRUN
Temel TLV kodlaması erken sona erdiyse.
WEAVE_ERROR_INVALID_TLV_ELEMENT
Okuyucu geçersiz veya desteklenmeyen bir TLV öğe türüyle karşılaştıysa.
WEAVE_ERROR_INVALID_TLV_TAG
Okuyucu, geçersiz bir bağlamda TLV etiketiyle karşılaşırsa.
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 kullanılabilir.

Get

WEAVE_ERROR Get(
  bool & v
)

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

Ayrıntılar
Parametreler
[out] v
Geçerli TLV öğesiyle ilişkilendirilmiş değeri alır.
Değerleri Döndür
WEAVE_NO_ERROR
Yöntem başarılı olursa.
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ı bir tam sayı biçiminde alın.

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

Ayrıntılar
Parametreler
[out] v
Geçerli TLV öğesiyle ilişkilendirilmiş değeri alır.
Değerleri Döndür
WEAVE_NO_ERROR
Yöntem başarılı olursa.
WEAVE_ERROR_WRONG_TLV_TYPE
Geçerli öğe TLV tam sayı türünde değilse (imzalı veya imzasız) ya da okuyucu bir öğenin üzerinde konumlandırılmadıysa.

Get

WEAVE_ERROR Get(
  int16_t & v
)

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

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

Ayrıntılar
Parametreler
[out] v
Geçerli TLV öğesiyle ilişkilendirilmiş değeri alır.
Değerleri Döndür
WEAVE_NO_ERROR
Yöntem başarılı olursa.
WEAVE_ERROR_WRONG_TLV_TYPE
Geçerli öğe TLV tam sayı türünde değilse (imzalı veya imzasız) ya da okuyucu bir öğenin üzerinde konumlandırılmadıysa.

Get

WEAVE_ERROR Get(
  int32_t & v
)

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

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

Ayrıntılar
Parametreler
[out] v
Geçerli TLV öğesiyle ilişkilendirilmiş değeri alır.
Değerleri Döndür
WEAVE_NO_ERROR
Yöntem başarılı olursa.
WEAVE_ERROR_WRONG_TLV_TYPE
Geçerli öğe TLV tam sayı türünde değilse (imzalı veya imzasız) ya da okuyucu bir öğenin üzerinde konumlandırılmadıysa.

Get

WEAVE_ERROR Get(
  int64_t & v
)

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

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

Ayrıntılar
Parametreler
[out] v
Geçerli TLV öğesiyle ilişkilendirilmiş değeri alır.
Değerleri Döndür
WEAVE_NO_ERROR
Yöntem başarılı olursa.
WEAVE_ERROR_WRONG_TLV_TYPE
Geçerli öğe TLV tam sayı türünde değilse (imzalı veya imzasız) ya da okuyucu bir öğenin üzerinde konumlandırılmadıysa.

Get

WEAVE_ERROR Get(
  uint8_t & v
)

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

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

Ayrıntılar
Parametreler
[out] v
Geçerli TLV öğesiyle ilişkilendirilmiş değeri alır.
Değerleri Döndür
WEAVE_NO_ERROR
Yöntem başarılı olursa.
WEAVE_ERROR_WRONG_TLV_TYPE
Geçerli öğe TLV tam sayı türünde değilse (imzalı veya imzasız) ya da okuyucu bir öğenin üzerinde konumlandırılmadıysa.

Get

WEAVE_ERROR Get(
  uint16_t & v
)

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

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

Ayrıntılar
Parametreler
[out] v
Geçerli TLV öğesiyle ilişkilendirilmiş değeri alır.
Değerleri Döndür
WEAVE_NO_ERROR
Yöntem başarılı olursa.
WEAVE_ERROR_WRONG_TLV_TYPE
Geçerli öğe TLV tam sayı türünde değilse (imzalı veya imzasız) ya da okuyucu bir öğenin üzerinde konumlandırılmadıysa.

Get

WEAVE_ERROR Get(
  uint32_t & v
)

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

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

Ayrıntılar
Parametreler
[out] v
Geçerli TLV öğesiyle ilişkilendirilmiş değeri alır.
Değerleri Döndür
WEAVE_NO_ERROR
Yöntem başarılı olursa.
WEAVE_ERROR_WRONG_TLV_TYPE
Geçerli öğe TLV tam sayı türünde değilse (imzalı veya imzasız) ya da okuyucu bir öğenin üzerinde konumlandırılmadıysa.

Get

WEAVE_ERROR Get(
  uint64_t & v
)

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

Kodlanmış tam sayı değeri negatifse değer, imzasız biçimine dönüştürülür.

Ayrıntılar
Parametreler
[out] v
Geçerli TLV öğesiyle ilişkilendirilmiş değeri alır.
Değerleri Döndür
WEAVE_NO_ERROR
Yöntem başarılı olursa.
WEAVE_ERROR_WRONG_TLV_TYPE
Geçerli öğe TLV tam sayı türünde değilse (imzalı veya imzasız) ya da okuyucu bir öğenin üzerinde konumlandırılmadıysa.

Get

WEAVE_ERROR Get(
  float & v
)

Get

WEAVE_ERROR Get(
  double & v
)

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

Ayrıntılar
Parametreler
[out] v
Geçerli TLV öğesiyle ilişkilendirilmiş değeri alır.
Değerleri Döndür
WEAVE_NO_ERROR
Yöntem başarılı olursa.
WEAVE_ERROR_WRONG_TLV_TYPE
Geçerli öğe TLV kayan nokta türü değilse veya okuyucu bir öğenin üzerinde konumlandırılmadıysa.

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 giriş arabellek boyutunu belirlemek için GetBytes() çağrısından önce GetLength() yöntemini çağırın.

Ayrıntılar
Parametreler
[in] buf
Dize verilerini almak için arabelleğe işaret eden bir işaret.
[in] bufSize
buf tarafından işaret edilen arabelleğin bayt cinsinden boyutu.
Değerleri Döndür
WEAVE_NO_ERROR
Yöntem başarılı olursa.
WEAVE_ERROR_WRONG_TLV_TYPE
Geçerli öğe bir TLV baytı veya UTF8 dizesi değilse ya da okuyucu, bir öğede konumlandırılmadıysa.
WEAVE_ERROR_BUFFER_TOO_SMALL
Sağlanan arabellek, geçerli öğeyle ilişkili verileri tutamayacak kadar küçükse.
WEAVE_ERROR_TLV_UNDERRUN
Temel TLV kodlaması erken sona erdiyse.
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 kullanılabilir.

GetContainerType

TLVType GetContainerType(
  void
) const 

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

GetContainerType() yöntemi, TLVReader'ın okuduğu TLV kapsayıcısının türünü döndürür. TLVReader, bir TLV kodlamasının en dış seviyesinde (yani, en dıştaki TLV öğesinin öncesinde, üzerinde veya sonrasında) konumlandırılırsa yöntem kTLVType_NotSpecified değerini döndürür.

Ayrıntılar
İadeler
Geçerli kapsayıcının TLVType veya TLVReader, kapsayıcı içinde konumlandırılmadıysa kTLVType_NotSpecified parametresi kullanılır.

GetControlByte

uint16_t GetControlByte(
  void
) const 

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

İdeal olarak, hiç kimse kontrol baytını bilmek zorunda değildir ve yalnızca TLV'nin dahili uygulaması bu bayta erişebilmelidir. Ancak, kontrol baytına erişmek TLVHata AyıklamaYardımcı Programları'nın (TLV arabellek içeriklerini güzel bir şekilde yazdırırken etiket kontrol baytının kodunu çözmeye çalışan) hata ayıklama amaçları açısından yararlıdır.

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

GetDataPtr

WEAVE_ERROR GetDataPtr(
  const uint8_t *& data
)

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

Bu yöntem, temel giriş arabelleği içindeki kodlanmış dize değerini doğrudan bir işaretçiye döndürür. Bu yöntemde başarılı olmak için dize değerinin tamamının tek bir arabellekte bulunması gerekir. Aksi takdirde, yöntem WEAVE_ERROR_TLV_UNDERRUN değerini döndürür. Bu, birden çok bitişik 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 eden bir const işaretçisine başvuru.
Değerleri Döndür
WEAVE_NO_ERROR
Yöntem başarılı olursa.
WEAVE_ERROR_WRONG_TLV_TYPE
Geçerli öğe bir TLV baytı veya UTF8 dizesi değilse ya da okuyucu, bir öğede konumlandırılmadıysa.
WEAVE_ERROR_TLV_UNDERRUN
Temel TLV kodlaması erken sona erdiyse veya geçerli dize öğesinin değeri tek bir bitişik arabellek içinde 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 kullanılabilir.

GetLength

uint32_t GetLength(
  void
) const 

Geçerli TLV öğesiyle ilişkilendirilmiş verilerin uzunluğunu döndürür.

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 dizedeki bayt sayısıdır, karakter sayısı değildir.

Ayrıntılar
İadeler
Geçerli TLV öğesiyle ilişkilendirilen verilerin uzunluğu (bayt cinsinden). Geçerli öğe, UTF8 dizesi veya bayt dizesi değilse ya da okuyucu, bir öğe üzerinde konumlandırılmadıysa 0.

GetLengthRead

uint32_t GetLengthRead(
  void
) const 

Okuyucu başlatıldıktan sonra okunan toplam bayt sayısını döndürür.

Ayrıntılar
İadeler
Okuyucu başlatıldıktan sonra okunan toplam bayt sayısı.

GetReadPoint

const uint8_t * GetReadPoint(
  void
) const 

Temel giriş arabelleğinde, okuyucunun mevcut konumuna karşılık gelen noktayı alır.

Ayrıntılar
İadeler
Okuyucunun mevcut konumuna karşılık gelen temel giriş arabelleğine giden 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şılıncaya 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ş olarak sonlandırılmış bir dize olarak alın.

Gerekli giriş arabellek boyutunu belirlemek için GetBytes() çağrısından önce GetLength() yöntemini çağırın. 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 arabelleğe işaret eden bir işaret.
[in] bufSize
buf tarafından işaret edilen arabelleğin bayt cinsinden boyutu.
Değerleri Döndür
WEAVE_NO_ERROR
Yöntem başarılı olursa.
WEAVE_ERROR_WRONG_TLV_TYPE
Geçerli öğe bir TLV baytı veya UTF8 dizesi değilse ya da okuyucu, bir öğede konumlandırılmadıysa.
WEAVE_ERROR_BUFFER_TOO_SMALL
Sağlanan arabellek, geçerli öğeyle ilişkili verileri tutamayacak kadar küçükse.
WEAVE_ERROR_TLV_UNDERRUN
Temel TLV kodlaması erken sona erdiyse.
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 kullanılabilir.

GetTag

uint64_t GetTag(
  void
) const 

Geçerli TLV öğesiyle ilişkilendirilmiş 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.) kullanılabilir.

Ayrıntılar
İadeler
Geçerli TLV öğesiyle ilişkilendirilmiş etiket hakkında bilgileri 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 öğesinin üzerinde yer almıyorsa döndürülen değer kTLVType_NotSpecified olur.

Init

void Init(
  const TLVReader & aReader
)

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

Ayrıntılar
Parametreler
[in] aReader
Bunu başlatmak için TLVReader'a salt okunur bir referans.

Init

void Init(
  const uint8_t *data,
  uint32_t dataLen
)

Tek bir giriş arabelleğinden okunacak bir TLVReader nesnesini başlatır.

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

Init

void Init(
  PacketBuffer *buf,
  uint32_t maxLen
)

Tek bir PacketBuffer'dan okunacak bir TLVReader nesnesini başlatır.

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

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

Init

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

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

Ayrıştırma, ilk arabelleğin başlangıç konumundan (buf->DataStart()) başlar. allowDiscontiguousBuffers doğru değerine ayarlanırsa okuyucu, Next() işaretçileri ile bağlı arabellek zincirinde ilerler. Arabellek zincirindeki tüm veriler tüketilene (buf->Datalen() tarafından belirtildiği şekliyle) 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 PacketBuffer işaretçisi.
[in] maxLen
Ayrıştırılacak maksimum bayt. Varsayılan olarak giriş arabellek zincirindeki toplam veri miktarı kullanılır.
[in] allowDiscontiguousBuffers
Doğru değerine ayarlanırsa mevcut arabellekteki tüm veriler kullanıldığında zincirdeki 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 bir sonraki TLV öğesine ilerletir.

Next() yöntemi, okuyucu nesnesini sonraki öğede, aynı kapsama bağlamında yer alan bir TLV kodlamasıyla konumlandırır. Özellikle okuyucu, TLV kodlamasının en dış seviyesinde konumlandırılıyorsa Next() çağrısının yapılması, okuyucuyu bir sonraki, en üstteki öğeye yönlendirir. Okuyucu bir TLV kapsayıcı öğesinin (yapı, dizi veya yol) içinde konumlandırıldıysa Next() çağrısının yapılması, okuyucuyu kapsayıcının sonraki üye öğesine yönlendirir.

Next(), okuyucu hareketini geçerli kapsama bağlamıyla kısıtladığından, okuyucu bir kapsayıcı öğesi üzerine konumlandırıldığında Next() çağrısı yapıldığında kapsayıcının üzerine ilerler ve üye öğeleri (ve iç içe yerleştirilmiş kapsayıcıların üyeleri) kapsayıcıdan sonraki ilk öğeye ulaşana kadar atlanır.

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

Ayrıntılar
Değerleri Döndür
WEAVE_NO_ERROR
Okuyucu yeni bir öğeye başarıyla konumlandırılıp yerleştirilmediğini gösterir.
WEAVE_END_OF_TLV
Başka öğe yoksa.
WEAVE_ERROR_TLV_UNDERRUN
Temel TLV kodlaması erken sona erdiyse.
WEAVE_ERROR_INVALID_TLV_ELEMENT
Okuyucu geçersiz veya desteklenmeyen bir TLV öğe türüyle karşılaştıysa.
WEAVE_ERROR_INVALID_TLV_TAG
Okuyucu, geçersiz bir bağlamda TLV etiketiyle karşılaşırsa.
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şırsa.
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 kullanılabilir.

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 requiredType, uint64_t estimatedTag) yöntemi, Next() ile aynı davranışa sahip olan ancak aynı zamanda yeni TLV öğesinin tür ve etiketinin sağlanan bağımsız değişkenlerle eşleştiğini doğrulayan kullanım amaçlı bir yöntemdir.

Ayrıntılar
Parametreler
[in] expectedType
Sonraki öğe için beklenen veri türü.
[in] expectedTag
Sonraki öğe için beklenen etiket.
Değerleri Döndür
WEAVE_NO_ERROR
Okuyucu yeni bir öğeye başarıyla konumlandırılıp yerleştirilmediğini gösterir.
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 erdiyse.
WEAVE_ERROR_INVALID_TLV_ELEMENT
Okuyucu geçersiz veya desteklenmeyen bir TLV öğe türüyle karşılaştıysa.
WEAVE_ERROR_INVALID_TLV_TAG
Okuyucu, geçersiz bir bağlamda TLV etiketiyle karşılaşırsa.
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 kullanılabilir.

OpenContainer

WEAVE_ERROR OpenContainer(
  TLVReader & containerReader
)

Bir TLV kapsayıcı öğesinin üyelerini okumak için yeni bir TLVReader nesnesini 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 nesnesini başlatır. OpenContainer() çağrıldığında, geçerli TLVReader nesnesi okunacak kapsayıcı öğeye 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şvuruyu alır. Bu okuyucu, kapsayıcı okuyucu olarak bilinir. Üzerinde OpenContainer() çağrısı yapılan okuyucu ise üst okuyucu olarak bilinir.

OpenContainer() yöntemi döndüğünde, kapsayıcı okuyucu, kapsayıcının ilk üyesinin hemen önüne yerleştirilir. Kapsayıcı okuyucuda Next() çağrıldığında, koleksiyon sonuna ulaşılıncaya kadar koleksiyon üyeleri arasında ilerler; bu noktada okuyucu WEAVE_END_OF_TLV değerini döndürür.

Kapsayıcı okuyucu açıkken uygulamalar, üst okuyucunun durumunu başka bir şekilde değiştirmemeli veya çağrı yapmamalıdır. Bir uygulama, kapsayıcı okuyucuyu kullanmayı tamamladıktan sonra, üst okuyucuda CloseContainer() işlevini çağırıp kapsayıcı okuyucuyu bağımsız değişken olarak ileterek uygulamayı kapatması gerekir. Uygulamalar, kapsayıcı okuyucuyu herhangi bir noktada, temel kapsayıcıda bulunan tüm öğeler olsa da olmasa da kapatabilir. Kapsayıcı okuyucu kapatıldıktan sonra, uygulamalar üst okuyucuyu kullanmaya devam edebilir.

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

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

Ayrıntılar
Parametreler
[out] containerReader
Mevcut kapsayıcı öğesinin üyelerini okumak için başlatılacak TLVReader nesnesine başvuru. Sağlanan nesneyle ilişkili tüm verilerin üzerine yazılır.
Değerleri Döndür
WEAVE_NO_ERROR
Yöntem başarılı olursa.
WEAVE_ERROR_INCORRECT_STATE
Geçerli öğe, bir kapsayıcı öğede yer almıyorsa.

Atla

WEAVE_ERROR Skip(
  void
)

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

Skip() yöntemi, okuyucu nesnesini geçerli TLV öğesinin hemen sonrasına konumlandırır. Bu şekilde, Next() için yapılan bir sonraki çağrı, okuyucuyu bir sonraki öğeye ilerletir. Next() işlevinde olduğu gibi, okuyucu, çağrı sırasında bir kapsayıcı öğesinde konumlandırıldıysa kapsayıcının üyeleri atlanır. Okuyucu herhangi bir öğenin üzerine yerleştirilmezse konumu değişmez.

Ayrıntılar
Değerleri Döndür
WEAVE_NO_ERROR
Okuyucu yeni bir öğeye başarıyla konumlandırılıp yerleştirilmediğini gösterir.
WEAVE_END_OF_TLV
Başka öğe yoksa.
WEAVE_ERROR_TLV_UNDERRUN
Temel TLV kodlaması erken sona erdiyse.
WEAVE_ERROR_INVALID_TLV_ELEMENT
Okuyucu geçersiz veya desteklenmeyen bir TLV öğe türüyle karşılaştıysa.
WEAVE_ERROR_INVALID_TLV_TAG
Okuyucu, geçersiz bir bağlamda TLV etiketiyle karşılaşırsa.
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 kullanılabilir.

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 değerini kontrol etmeye eşdeğer olan kullanım amaçlı bir yöntemdir.

Ayrıntılar
Değerleri Döndür
WEAVE_NO_ERROR
Okunacak başka TLV öğesi yoksa.
WEAVE_ERROR_UNEXPECTED_TLV_ELEMENT
Koleksiyonda başka bir TLV öğesi bulunursa.
WEAVE_ERROR_TLV_UNDERRUN
Temel TLV kodlaması erken sona erdiyse.
WEAVE_ERROR_INVALID_TLV_ELEMENT
Okuyucu geçersiz veya desteklenmeyen bir TLV öğe türüyle karşılaştıysa.
WEAVE_ERROR_INVALID_TLV_TAG
Okuyucu, geçersiz bir bağlamda TLV etiketiyle karşılaşırsa.
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 kullanılabilir.

Korunan işlevler

ClearElementState

void ClearElementState(
  void
)

TLVReader'ın durumunu temizleyin.

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

ElementType

TLVElementType ElementType(
  void
) const 

Bu, mControlByte'tan TLVElementType döndüren gizli bir yöntemdir.

EnsureData

WEAVE_ERROR EnsureData(
  WEAVE_ERROR noDataErr
)

GetElementHeadLength

WEAVE_ERROR GetElementHeadLength(
  uint8_t & elemHeadBytes
) const 

Bu, TLV öğe başlığı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 arabellek olmadan okuyarak bu verileri atlayın.

Ayrıntılar
Değerleri Döndür
WEAVE_NO_ERROR
Okuyucu, verilerin sonuna başarılı bir şekilde yerleştirilip yerleştirilmediğini gösterir.
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 kullanılabilir.

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
)