Koleksiyonlar ile düzeninizi koruyun İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.

nl::Ör.:TLV::TLVOkuyucu

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

Weave TLV biçiminde kodlanmış veriler için bellekten verimli bir ayrıştırıcı sunar.

Özet

TLVReader, Weave TLV verileri için salt, "Çekme stilinde" bir ayrıştırıcı uygular. TLVReader nesnesi, bir dizi TLV öğesi üzerinde tekrarlamak ve içeriklerini yorumlamak için kullanılabilen bir imleçtir. Uygulamalar bir öğenin üzerine yerleştirildiğinde, geçerli öğenin türünü ve etiketini sorgulamak ve ilişkilendirilmiş değerleri çıkarmak için okuyucunun Get() yöntemlerine çağrı yapabilir. Okuyucunun Next() yöntemi, öğeden öğeye geçmek için kullanılır.

TLVReader nesnesi her zaman bir TLV öğesinden önce, sonra veya sonra konumlandırılır. İlk başlatıldığında TLVReader, kodlamanın ilk öğesinden hemen önce konumlandırılır. Okumaya başlamak için bir uygulama, okuyucuyu ilk öğeye yerleştirmek üzere Next() yöntemine ilk çağrı yapmalıdır. Bir kapsayıcı öğesiyle bir yapı, dizi veya yol ile karşılaşıldığında kapsayıcının içeriğini 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 uygulamayı belirtir. Okuyucu, yeniden başlatılana veya geçerli kapsayıcıdan (CloseContainer() / ExitContainer() aracılığıyla) çıkış yapılana 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 Paket Paketi Arabelleği zincirinden ayrıştırabilir. Ayrıca uygulamalar, okuyucuya rastgele bir kaynaktan (ör. yuva veya seri bağlantı noktası) veri aktarmak için bir GetNextBuffer işlevi 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şlevdir.

Herkese açık özellikler

AppData
void *
Uygulamaya özel veriler için kullanılabilecek bir işaretçi alanı.
GetNextBuffer
TLVReader nesnesi için giriş verileri üreten bir işlevin işaretçisi.
ImplicitProfileId
uint32_t
Dolaylı biçimde kodlanan profil etiketleri için kullanılacak profil kimliği.

Korumalı ö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)
Bir OpenContainer() çağrısından sonra TLV kapsayıcısının okunmasını tamamlar.
DupBytes(uint8_t *& buf, uint32_t & dataLen)
Mevcut baytın veya UTF8 dizesinin değerini içeren bir arabelleği ayırır ve döndürür.
DupString(char *& buf)
Mevcut baytın veya UTF8 dizesinin boş değerli son değerini içeren bir arabelleği 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 okumasını tamamlar ve kapsayıcıdan sonra öğeleri okumak için bir TLVReader nesnesi hazırlar.
Get(bool & v)
Boole türü olarak mevcut öğenin değerini alın.
Get(int8_t & v)
Geçerli öğenin değerini 8 bit olarak imzalanmış 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 bit olarak imzalanmamış bir tam sayı olarak alın.
Get(uint16_t & v)
Geçerli öğenin değerini 16 bit imzalanmamış bir tam sayı olarak alın.
Get(uint32_t & v)
Geçerli öğenin değerini 32 bit imzalanmamış bir tam sayı olarak alın.
Get(uint64_t & v)
Geçerli öğenin değerini 64 bit imzasız bir tam sayı olarak alın.
Get(float & v)
Get(double & v)
Geçerli öğenin değerini iki hassasiyetli kayan nokta sayısı olarak alın.
GetBufHandle(void) const
uintptr_t
GetBytes(uint8_t *buf, uint32_t bufSize)
Geçerli bayt veya UTF8 dizesi öğ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
Mevcut TLV öğesiyle ilişkili kontrol baytını döndürür.
GetDataPtr(const uint8_t *& data)
Bir TLV baytının veya UTF8 dizesi öğesinin ilk kodlanmış baytına işaret edin.
GetLength(void) const
uint32_t
Geçerli TLV öğesiyle ilişkili verilerin uzunluğunu döndürür.
GetLengthRead(void) const
uint32_t
Okuyucu ilk kullanıma sunulduğundan beri okunan toplam bayt sayısını döndürür.
GetReadPoint(void) const
const uint8_t *
Okuyucunun mevcut konumuna karşılık gelen temel giriş arabelleğindeki noktayı alır.
GetRemainingLength(void) const
uint32_t
Maksimum okuma uzunluğuna ulaşılana kadar okunabilen toplam bayt sayısını döndürür.
GetString(char *buf, uint32_t bufSize)
Mevcut baytın veya UTF8 dizesi öğesinin değerini boş değerli bir dize olarak alın.
GetTag(void) const
uint64_t
Geçerli TLV öğesiyle ilişkilendirilmiş etiketi döndürür.
GetType(void) const
Mevcut 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'tan okumak üzere bir TLVReader nesnesini başlatır.
Next(void)
TLVReader nesnesini, okunacak bir sonraki TLV öğesine dönüştürür.
Next(TLVType expectedType, uint64_t expectedTag)
TLVReader nesnesini, okunacak bir sonraki TLV öğesine ilerleyerek yeni öğenin türünü ve etiketini iddia eder.
OpenContainer(TLVReader & containerReader)
Bir TLV kapsayıcı öğesinin üyelerini okumak için yeni bir TLVReader nesnesini başlatır.
Skip(void)
TLVReader nesnesini, mevcut TLV öğesinden hemen sonraya getirir.
VerifyEndOfContainer(void)
TVLReader nesnesinin bir TLV kapsayıcısının sonunda olduğunu belirtir.

Korumalı işlevler

ClearElementState(void)
void
TLVReader'ın 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, bir TLV öğe başının uzunluğunu hesaplamak için kullanılan özel 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 bulunan tüm verileri hedef arabelleğe almadan okuyun.
SkipToEndOfContainer(void)
VerifyElement(void)

Korumalı 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şlevdir.

Bu tür işlevler, bir TLVReader'a giriş verileri aktarmak için kullanılır. Bu işlev çağrıldığında, işlevin okuyucuyu ayrıştıracak veya daha fazla veri olmadığını belirten bir sinyal için ek veri oluşturması beklenir.

Ayrıntılar
Parametreler
[in] reader
Giriş verilerini isteyen TLVReader nesnesine başvuru.
[in,out] bufHandle
Fonksiyonun aramalar arasında içerik verilerini depolamak için kullanabileceği uintptr_t değerine referans. Bu değer, ilk aramadan önce 0 olarak başlatılır.
[in,out] bufStart
Bir veri işaretçisine başvuru. İşleve giriş yapıldığında bufStart, okuyucu tarafından tüketilen son TLV veri baytını aşan bir bayta işaret eder. Çıkışta, bufStart'ın ayrıştırılacak yeni TLV verilerinin ilk baytını göstermesi beklenir. Yeni işaretçi değeri, daha önce tüketilen verilerle aynı arabellekte veya tamamen yeni bir arabelleğe işaret edebilir.
[out] bufLen
İşlevin döndürülecek TLV veri baytlarının sayısına ayarlanması gereken imzasız bir tam sayı referansı. Girilen TLV verilerinin sonuna ulaşılmışsa işlev bu değeri 0 olarak ayarlamalıdır.
İade Değerleri
WEAVE_NO_ERROR
İşlev daha fazla TLV verisi oluşturuyorsa veya giriş verilerinin sonuna ulaşılmışsa (bu durumda bufLen 0 olarak ayarlanmalıdır).
other
İşlevin istenen verileri oluşturmasını engelleyen bir hata oluştuğunu belirten diğer Weave veya platforma özgü hata kodları.

Herkese açık özellikler

Dosya

void * AppData

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

SonrakiSonraki Arabelleği

GetNextBufferFunct GetNextBuffer

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

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

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

GetNextBuffer işlevinin uygulanmasıyla ilgili ek bilgiler için GetNextBufferFunct türü tanımına bakın.

DolaylıProfil Kimliği

uint32_t ImplicitProfileId

Dolaylı biçimde kodlanan profil etiketleri için kullanılacak profil kimliği.

Okuyucu, örtülü biçimde kodlanan profile özel 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 ayarlanmıştır. Dolaylı olarak kodlanan etiketleri içeren TLV'nin kodunu çözerken bu tür etiketlere sahip TLV öğeleri okunmadan önce uygulamaların ImplicitProfileId ayarlarını yapması gerekir. Uygun profil kimliği genellikle söz konusu uygulamanın veya protokolün bağlamına bağlıdır.

ImplicitProfileId, kProfileIdNotSpecified olarak ayarlıyken dolaylı olarak kodlanmış bir etiketle karşılaşılırsa okuyucu bir WEAVE_ERROR_UNKNOWN_IMPLICIT_TLV_TAG hatası döndürür.

Korumalı özellikler

mBufEnd

const uint8_t * mBufEnd

Mobilya Tutacakları

uintptr_t mBufHandle

mContainerType

TLVType mContainerType

mKontrolByte

uint16_t mControlByte

mElemLenOrVal

uint64_t mElemLenOrVal

mElemEtiketi

uint64_t mElemTag

Okuma Okuma

uint32_t mLenRead

Maksimum Performans

uint32_t mMaxLen

mReadPoint

const uint8_t * mReadPoint

Herkese açık işlevler

Kapsayıcıyı Kapat

WEAVE_ERROR CloseContainer(
  TLVReader & containerReader
)

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

CloseContainer() yöntemi, bir OpenContainer() çağrısından sonra üst TLVReader nesnesinin durumunu geri yükler. OpenContainer() uygulamalarına yapılan her çağrı için her iki yönteme aynı kapsayıcı okuyucuya bir referans ileterek CloseContainer() çağrısı yapılması gerekir.

CloseContainer() döndürdüğünde ana okuyucu, kapsayıcıyı takip eden ilk öğeden hemen önce konumlandırılır. Bu noktadan sonra, bir uygulama kalan öğeler arasında gezinmek için Next() yöntemini kullanabilir.

Uygulamalar, ana kapsayıcıdaki tüm öğelerin okunup okunmadığına bakılmaksızın, herhangi bir zamanda üst okuyucuda kapat CloseContainer() işlevini çağırabilir. CloseContainer() işlevi çağrıldıktan sonra, uygulama kapsayıcı okuyucusu ##39;de-initialized' olarak değerlendirilmeli ve yeniden başlatmadan daha fazla kullanılmamalıdır.

Ayrıntılar
Parametreler
[in] containerReader
OpenContainer() yöntemine sağlanan TLVReader nesnesine başvuru.
İade Değerleri
WEAVE_NO_ERROR
Yöntem başarılı olduysa.
WEAVE_ERROR_INCORRECT_STATE
Okuyucuda OpenContainer() işlevi çağrılmadıysa veya kapsayıcı okuyucu, OpenContainer() yöntemine iletilen okuyucuyla eşleşmezse.
WEAVE_ERROR_TLV_UNDERRUN
Temel TLV kodlaması erken sona ererse.
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ş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 değeri NULL olmadığında kullanılabilir.

Çift Baytlar

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

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

Bu yöntem, bayt cinsinden veya UTF-8 dizesiyle ilişkili verilerin geçerli konumda bir arabelleği oluşturur ve kopyasını döndürür. Arabellek için bellek Malloc() ile elde edilir ve artık gerekli olmadığında arayan tarafından free() ile serbest bırakılmalıdır.

Ayrıntılar
Parametreler
[out] buf
Başarılı bir şekilde dataLen baytlık tamponlu bir arabelleğin atanacağı işaretçi.
[out] dataLen
Başarıya ulaşacak şekilde buf boyutu için depolama alanına başvuru.
İade Değerleri
WEAVE_NO_ERROR
Yöntem başarılı olduysa.
WEAVE_ERROR_WRONG_TLV_TYPE
Geçerli öğe bir TLV baytı veya UTF8 dizesi değilse veya okuyucu bir öğenin üzerinde konumlandırılmamışsa.
WEAVE_ERROR_NO_MEMORY
Çıkış arabelleği için bellek ayrılamadıysa.
WEAVE_ERROR_TLV_UNDERRUN
Temel TLV kodlaması erken sona ererse.
WEAVE_ERROR_UNSUPPORTED_WEAVE_FEATURE
Hedef platform Malloc() ve free() komutlarını 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 değeri NULL olmadığında kullanılabilir.

Kopya Dizesi

WEAVE_ERROR DupString(
  char *& buf
)

Mevcut baytın veya UTF8 dizesinin boş değerli son değerini içeren bir arabelleği ayırır ve döndürür.

Bu yöntem, bayt cinsinden veya UTF-8 dizesiyle ilişkili verilerin geçerli konumda arabelleğe alınması ve boş değerli bir kopyasını döndürür. Arabellek için bellek Malloc() ile elde edilir ve artık gerekli olmadığında arayan tarafından free() ile serbest bırakılmalıdır.

Ayrıntılar
Parametreler
[out] buf
Başarıyla yığınla ayrılmış bir tampon atanacağı işaretçi.
İade Değerleri
WEAVE_NO_ERROR
Yöntem başarılı olduysa.
WEAVE_ERROR_WRONG_TLV_TYPE
Geçerli öğe bir TLV baytı veya UTF8 dizesi değilse veya okuyucu bir öğenin üzerinde konumlandırılmamışsa.
WEAVE_ERROR_NO_MEMORY
Çıkış arabelleği için bellek ayrılamadıysa.
WEAVE_ERROR_TLV_UNDERRUN
Temel TLV kodlaması erken sona ererse.
WEAVE_ERROR_UNSUPPORTED_WEAVE_FEATURE
Hedef platform Malloc() ve free() komutlarını 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 değeri NULL olmadığında kullanılabilir.

EnterKapsayıcısı

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 mevcut TLVReader nesnesini hazırlar. EnterContainer() çağrılarına yapılan her çağrı için ExitContainer() işlevine karşılık gelen bir çağrı yapılması gerekir.

EnterContainer() adı verildiğinde, TLVReader nesnesinin okunabilmesi için kapsayıcı öğesine yerleştirilmesi gerekir. Yöntem bir bağımsız değişken olarak, kapsayıcı okunurken okuyucunun bağlamını kaydetmek için kullanılacak bir TLVType değerine başvuru alır.

EnterContainer() yöntemi döndüğünde, okuyucu, kapsayıcının ilk üyesinden önce konumlandırılır. Tekrar eden Next() çağrısı, okuyucuyu sona erdirene kadar koleksiyonun üyeleri üzerinden ilerletir ve bu durumda okuyucu WEAVE_END_OF_TLV döndürür.

Uygulama, kapsayıcı okumayı tamamladığında, 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ğeri için bir referans.
İade Değerleri
WEAVE_NO_ERROR
Yöntem başarılı olduysa.
WEAVE_ERROR_INCORRECT_STATE
Geçerli öğe, bir kapsayıcı öğesinin üzerine yerleştirilmediyse.

ÇıkışKapsayıcısı

WEAVE_ERROR ExitContainer(
  TLVType outerContainerType
)

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

ExitContainer() yöntemi, bir TLVReader nesnesinin durumunu EnterContainer() çağrısından sonra geri yükler. EnterContainer() uygulamalarına yapılan her çağrı için EnterContainer() yöntemi tarafından döndürülen bağlam değerini ileterek ExitContainer() işlevine karşılık gelen bir çağrı yapması gerekir.

ExitContainer() döndüğünde okuyucu, kapsayıcıyı izleyen ilk öğenin hemen önüne yerleştirilir. Bu noktadan sonra, bir uygulama kalan öğeler arasında gezinmek 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 okuyucuda ExitContainer() işlevini çağırabilir.

Ayrıntılar
Parametreler
[in] outerContainerType
EnterContainer() yöntemi tarafından döndürülen TLVType değeri.
İade Değerleri
WEAVE_NO_ERROR
Yöntem başarılı olduysa.
WEAVE_ERROR_INCORRECT_STATE
Okuyucuda OpenContainer() işlevi çağrılmadıysa veya kapsayıcı okuyucu, OpenContainer() yöntemine iletilen okuyucuyla eşleşmezse.
WEAVE_ERROR_TLV_UNDERRUN
Temel TLV kodlaması erken sona ererse.
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ş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 değeri NULL olmadığında kullanılabilir.

Get

WEAVE_ERROR Get(
  bool & v
)

Boole türü olarak mevcut öğenin değerini alın.

Ayrıntılar
Parametreler
[out] v
Geçerli TLV öğesiyle ilişkilendirilen değeri alır.
İade Değerleri
WEAVE_NO_ERROR
Yöntem başarılı olduysa.
WEAVE_ERROR_WRONG_TLV_TYPE
Geçerli öğe bir TLV boole türü değilse veya okuyucu bir öğenin üzerinde konumlandırılmamışsa.

Get

WEAVE_ERROR Get(
  int8_t & v
)

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

Kodlanmış tam sayı değeri çıkış veri türünden büyükse ortaya çıkan değer kesilir.

Ayrıntılar
Parametreler
[out] v
Geçerli TLV öğesiyle ilişkilendirilen değeri alır.
İade Değerleri
WEAVE_NO_ERROR
Yöntem başarılı olduysa.
WEAVE_ERROR_WRONG_TLV_TYPE
Geçerli öğe bir TLV tam sayı türü (imzalı veya imzasız) değilse veya okuyucu bir öğe üzerinde konumlandırılmamışsa.

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 ortaya çıkan değer kesilir.

Ayrıntılar
Parametreler
[out] v
Geçerli TLV öğesiyle ilişkilendirilen değeri alır.
İade Değerleri
WEAVE_NO_ERROR
Yöntem başarılı olduysa.
WEAVE_ERROR_WRONG_TLV_TYPE
Geçerli öğe bir TLV tam sayı türü (imzalı veya imzasız) değilse veya okuyucu bir öğe üzerinde konumlandırılmamışsa.

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 ortaya çıkan değer kesilir.

Ayrıntılar
Parametreler
[out] v
Geçerli TLV öğesiyle ilişkilendirilen değeri alır.
İade Değerleri
WEAVE_NO_ERROR
Yöntem başarılı olduysa.
WEAVE_ERROR_WRONG_TLV_TYPE
Geçerli öğe bir TLV tam sayı türü (imzalı veya imzasız) değilse veya okuyucu bir öğe üzerinde konumlandırılmamışsa.

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 ortaya çıkan değer kesilir.

Ayrıntılar
Parametreler
[out] v
Geçerli TLV öğesiyle ilişkilendirilen değeri alır.
İade Değerleri
WEAVE_NO_ERROR
Yöntem başarılı olduysa.
WEAVE_ERROR_WRONG_TLV_TYPE
Geçerli öğe bir TLV tam sayı türü (imzalı veya imzasız) değilse veya okuyucu bir öğe üzerinde konumlandırılmamışsa.

Get

WEAVE_ERROR Get(
  uint8_t & v
)

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

Kodlanmış tam sayı değeri çıkış veri türünden büyükse ortaya çıkan değer kesilir. 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
Geçerli TLV öğesiyle ilişkilendirilen değeri alır.
İade Değerleri
WEAVE_NO_ERROR
Yöntem başarılı olduysa.
WEAVE_ERROR_WRONG_TLV_TYPE
Geçerli öğe bir TLV tam sayı türü (imzalı veya imzasız) değilse veya okuyucu bir öğe üzerinde konumlandırılmamışsa.

Get

WEAVE_ERROR Get(
  uint16_t & v
)

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

Kodlanmış tam sayı değeri çıkış veri türünden büyükse ortaya çıkan değer kesilir. 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
Geçerli TLV öğesiyle ilişkilendirilen değeri alır.
İade Değerleri
WEAVE_NO_ERROR
Yöntem başarılı olduysa.
WEAVE_ERROR_WRONG_TLV_TYPE
Geçerli öğe bir TLV tam sayı türü (imzalı veya imzasız) değilse veya okuyucu bir öğe üzerinde konumlandırılmamışsa.

Get

WEAVE_ERROR Get(
  uint32_t & v
)

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

Kodlanmış tam sayı değeri çıkış veri türünden büyükse ortaya çıkan değer kesilir. 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
Geçerli TLV öğesiyle ilişkilendirilen değeri alır.
İade Değerleri
WEAVE_NO_ERROR
Yöntem başarılı olduysa.
WEAVE_ERROR_WRONG_TLV_TYPE
Geçerli öğe bir TLV tam sayı türü (imzalı veya imzasız) değilse veya okuyucu bir öğe üzerinde konumlandırılmamışsa.

Get

WEAVE_ERROR Get(
  uint64_t & v
)

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

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

Ayrıntılar
Parametreler
[out] v
Geçerli TLV öğesiyle ilişkilendirilen değeri alır.
İade Değerleri
WEAVE_NO_ERROR
Yöntem başarılı olduysa.
WEAVE_ERROR_WRONG_TLV_TYPE
Geçerli öğe bir TLV tam sayı türü (imzalı veya imzasız) değilse veya okuyucu bir öğe üzerinde konumlandırılmamışsa.

Get

WEAVE_ERROR Get(
  float & v
)

Get

WEAVE_ERROR Get(
  double & v
)

Geçerli öğenin değerini iki hassasiyetli kayan nokta sayısı olarak alın.

Ayrıntılar
Parametreler
[out] v
Geçerli TLV öğesiyle ilişkilendirilen değeri alır.
İade Değerleri
WEAVE_NO_ERROR
Yöntem başarılı olduysa.
WEAVE_ERROR_WRONG_TLV_TYPE
Geçerli öğe bir TLV kayan nokta türü değilse veya okuyucu bir öğenin üzerinde konumlandırılmamışsa.

GetBuf herkese açık kullanıcı adı

uintptr_t GetBufHandle(
  void
) const 

GetByte'lar

WEAVE_ERROR GetBytes(
  uint8_t *buf,
  uint32_t bufSize
)

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

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

Ayrıntılar
Parametreler
[in] buf
Dize verilerini almak için bir arabellek işaretçisi.
[in] bufSize
buf değerinin işaret ettiği arabellin bayt cinsinden boyutu.
İade Değerleri
WEAVE_NO_ERROR
Yöntem başarılı olduysa.
WEAVE_ERROR_WRONG_TLV_TYPE
Geçerli öğe bir TLV baytı veya UTF8 dizesi değilse veya okuyucu bir öğenin üzerinde konumlandırılmamışsa.
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 ererse.
other
Yapılandırılmış GetNextBuffer() işlevi tarafından döndürülen diğer Weave veya platform hata kodları. Yalnızca GetNextBuffer değeri 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 üst düzeyinde bulunuyorsa (yani en dıştaki TLV öğesinden önce, sonra veya sonra) yöntem kTLVType_NotSpecified döndürür.

Ayrıntılar
İadeler
Mevcut kapsayıcının TLVType veya TLVReader öğesi bir kapsayıcının içinde değilse kTLVType_NotSpecized.

GetControlByte

uint16_t GetControlByte(
  void
) const 

Mevcut TLV öğesiyle ilişkili kontrol baytını döndürür.

İdeal olarak, kimsenin kontrol baytını bilmesi gerekmez. Yalnızca TLV'nin dahili uygulaması uygulamaya erişmek için uygun olmalıdır. Ancak kontrol baytına erişmek, TLVHata AyıklamaYardımcı Programları (TLV arabelleğe alınmış içeriği yazdırırken etiket kontrol baytının kodunu çözmeye çalışan) hata ayıklama amacıyla faydalıdır.

Ayrıntılar
İadeler
Geçerli TLV öğesiyle ilişkili kontrol baytını içeren imzasız bir tam sayı. Okuyucu bir öğenin üzerinde konumlandırmazsa kTLVControlByte_NotSpecified döndürülür.

VeriVerimi Alma

WEAVE_ERROR GetDataPtr(
  const uint8_t *& data
)

Bir TLV baytının veya UTF8 dizesi öğesinin ilk kodlanmış baytına işaret edin.

Bu yöntem, temel girdi arabelleğinde kodlanmış dize değerini bir doğrudan işaretçi döndürür. Başarılı olmak için yöntemde, dize değerinin tamamı tek bir arabellekte bulunmalıdır. Aksi takdirde yöntem, WEAVE_ERROR_TLV_UNDERRUN değerini döndürür. Bu, birden fazla mükerrer arabelleğe ait veriler okunurken sınırlı kullanım yöntemi oluşturur.

Ayrıntılar
Parametreler
[out] data
Temel dize verilerine işaret sağlayacak bir konstant işaretçisine başvurudur.
İade Değerleri
WEAVE_NO_ERROR
Yöntem başarılı olduysa.
WEAVE_ERROR_WRONG_TLV_TYPE
Geçerli öğe bir TLV baytı veya UTF8 dizesi değilse veya okuyucu bir öğenin üzerinde konumlandırılmamışsa.
WEAVE_ERROR_TLV_UNDERRUN
Temel TLV kodlaması erken sona ererse veya geçerli dize öğesinin değeri tek bir bitişik arabellekte yer almaz.
other
Yapılandırılmış GetNextBuffer() işlevi tarafından döndürülen diğer Weave veya platform hata kodları. Yalnızca GetNextBuffer değeri NULL olmadığında kullanılabilir.

GetLength

uint32_t GetLength(
  void
) const 

Geçerli TLV öğesiyle ilişkili 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, 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 veya bayt dizesi değilse veya okuyucu bir öğenin üzerinde konumlanmamışsa 0 olur.

ReadLengthRead

uint32_t GetLengthRead(
  void
) const 

Okuyucu ilk kullanıma sunulduğundan beri okunan toplam bayt sayısını döndürür.

Ayrıntılar
İadeler
Okuyucu ilk kullanıma sunulduğundan beri okunan toplam bayt sayısı.

GetReadPoint

const uint8_t * GetReadPoint(
  void
) const 

Okuyucunun mevcut konumuna karşılık gelen temel giriş arabelleğindeki noktayı alır.

Ayrıntılar
İadeler
Okuyucunun mevcut konumuna karşılık gelen alttaki giriş arabelleğine bir işaretçi.

Kalan Uzunluk

uint32_t GetRemainingLength(
  void
) const 

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

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

Dizeyi Al

WEAVE_ERROR GetString(
  char *buf,
  uint32_t bufSize
)

Mevcut baytın veya UTF8 dizesi öğesinin değerini boş değerli bir dize olarak alın.

Gerekli giriş arabelleği boyutunu belirlemek için, GetBytes() işlevini çağırmadan önce GetLength() yöntemini çağırın. Giriş arabelleği, boş karakteri barındıracak ş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 arabellek için bir işaretçi.
[in] bufSize
buf değerinin işaret ettiği arabellin bayt cinsinden boyutu.
İade Değerleri
WEAVE_NO_ERROR
Yöntem başarılı olduysa.
WEAVE_ERROR_WRONG_TLV_TYPE
Geçerli öğe bir TLV baytı veya UTF8 dizesi değilse veya okuyucu bir öğenin üzerinde konumlandırılmamışsa.
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 ererse.
other
Yapılandırılmış GetNextBuffer() işlevi tarafından döndürülen diğer Weave veya platform hata kodları. Yalnızca GetNextBuffer değeri 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, etiket 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şkili etiket hakkında bilgi içeren imzalanmamış bir tam sayı.

AlmaTürü

TLVType GetType(
  void
) const 

Mevcut 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 konumlanmazsa dönüş değeri kTLVType_NotSpecified olacaktır.

İnit

void Init(
  const TLVReader & aReader
)

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

Ayrıntılar
Parametreler
[in] aReader
Bunun başlatılması için TLVReader öğesine salt okunur bir başvuru kaynağı.

İnit

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 bir bumper'ın işaretçisi.
[in] dataLen
Ayrıştırılacak TLV verilerinin uzunluğu.

İnit

void Init(
  PacketBuffer *buf,
  uint32_t maxLen
)

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

Ayrıştırma, tampon başlangıç konumunda (buf&&tt;DataStart()) başlar ve arabellekteki verilerin sonuna kadar (buf->Datalen() ile gösterilir) 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 PaketBuffer'a işaret eden öğedir.
[in] maxLen
Ayrıştırılacak maksimum bayt miktarı. Varsayılan olarak giriş arabelleğindeki veri miktarını belirler.

İnit

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

Bir veya daha fazla PacketBuffers'tan okumak üzere bir TLVReader nesnesini başlatır.

Ayrıştırma, başlangıç arabelleğinin (buf&&tt;DataStart()) başlangıç noktasında başlar. allowDiskonguousBuffers doğruysa okuyucu, Next() işaretçileriyle bağlanan arabellek zincirinde ilerler. Ayrım işlemi, arabellek zincirindeki tüm veriler (buf->Datalen() ile belirtilen ş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 bir PaketBuffer'a işaret eden öğedir.
[in] maxLen
Ayrıştırılacak maksimum bayt miktarı. Varsayılan olarak, giriş arabelleği zincirindeki toplam veri miktarını gösterir.
[in] allowDiscontiguousBuffers
Doğru (true) değerindeyse, geçerli tampondaki tüm veriler tüketildikten sonra zincirdeki bir sonraki arabelleğe alın. Yanlışsa ilk arabelleğin sonunda ayrıştırmayı durdurun.

Sonraki

WEAVE_ERROR Next(
  void
)

TLVReader nesnesini, okunacak bir sonraki TLV öğesine dönüştürür.

Next() yöntemi, okuyucu nesnesini aynı kapsayıcı bağlamında bulunan TLV kodlamasında sonraki öğeye yerleştirir. Özellikle, okuyucu TLV kodlamasının en üst düzeyinde konumlandırılırsa Next() çağrısı, okuyucuyu bir sonraki en üstteki öğeye yönlendirir. Okuyucu bir TLV kapsayıcı öğesinin (konum, dizi veya yol) içine yerleştirilirse Next() çağrısı, okuyucuyu kapsayıcının bir sonraki üye öğesine yönlendirir.

Next() işlevi, okuyucu hareketini geçerli kapsayıcı bağlamıyla sınırlar. Okuyucu bir kapsayıcı öğesine yerleştirildiğinde Next() işlevini çağırmak kapsayıcı üzerinde yükseltilir ve kapsayıcıdan sonraki ilk öğeye ulaşana kadar, üye öğeleri (ve iç içe yerleştirilmiş kapsayıcıların üyeleri) atlanır.

Belirli bir kapsam bağlamı içinde 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
İade Değerleri
WEAVE_NO_ERROR
Okuyucunun yeni bir öğeye başarıyla yerleştirilip yerleştirilmediği.
WEAVE_END_OF_TLV
Başka öğe yoksa.
WEAVE_ERROR_TLV_UNDERRUN
Temel TLV kodlaması erken sona ererse.
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ştıysa.
WEAVE_ERROR_UNKNOWN_IMPLICIT_TLV_TAG
Okuyucu, ilgili profil kimliğinin bilinmediği, üstü kapalı olarak kodlanmış 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 değeri NULL olmadığında kullanılabilir.

Sonraki

WEAVE_ERROR Next(
  TLVType expectedType,
  uint64_t expectedTag
)

TLVReader nesnesini, okunacak bir sonraki TLV öğesine ilerleyerek yeni öğenin türünü ve etiketini iddia eder.

Next(TLVType beklenenType, uint64_t beklenenTag) yöntemi, Next() ile aynı davranışa sahip olan ancak aynı zamanda yeni TLV öğesinin türünün ve etiketinin sağlanan bağımsız değişkenlerle eşleştiğini doğrular.

Ayrıntılar
Parametreler
[in] expectedType
Sonraki öğe için beklenen veri türü.
[in] expectedTag
Sonraki öğe için beklenen etiket.
İade Değerleri
WEAVE_NO_ERROR
Okuyucunun yeni bir öğeye başarıyla 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 ererse.
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ş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 değeri NULL olmadığında kullanılabilir.

Kapsayıcı

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 üzere yeni bir TLVReader nesnesini başlatır. OpenContainer() çağrıldığında, geçerli TLVReader nesnesinin, okunabilmesi için kapsayıcı öğesine yerleştirilmesi gerekir. 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() adı verilen 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() işlevini çağırmak, toplama ulaşılana kadar koleksiyonun üyeleri arasında devam eder ve bu noktada okuyucu WEAVE_END_OF_TLV döndürür.

Kapsayıcı okuyucu açıkken uygulamalar ana okuyucunun durumunu yapmamalı veya durumunu değiştirmemelidir. Bir uygulama, kapsayıcı okuyucuyu kullanmayı bitirdikten sonra, üst okuyucuda CloseContainer() işlevini çağırarak ve kapsayıcı okuyucuyu bağımsız değişken olarak ileterek uygulamayı kapatmalıdır. Uygulamalar, kapsayıcı kapsayıcıdaki tüm öğeleri okuyup okumadan da kapsayıcı okuyucuyu 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:

  • Dolaylı 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 bir TLVReader nesnesine başvuru. Sağlanan nesneyle ilişkili tüm verilerin üzerine yazılır.
İade Değerleri
WEAVE_NO_ERROR
Yöntem başarılı olduysa.
WEAVE_ERROR_INCORRECT_STATE
Geçerli öğe, bir kapsayıcı öğesinin üzerine yerleştirilmediyse.

Atla

WEAVE_ERROR Skip(
  void
)

TLVReader nesnesini, mevcut TLV öğesinden hemen sonraya getirir.

Skip() yöntemi, okuyucu nesnesini geçerli TLV öğesinden hemen sonra yerleştirir ve böylece sonraki bir Next() çağrısı, okuyucuyu aşağıdaki öğeye yönlendirir. Next() gibi, çağrı sırasında okuyucu bir kapsayıcı öğesinin üzerine yerleştirilirse, kapsayıcının üyeleri atlanır. Okuyucu herhangi bir öğeye yerleştirilmezse konumu değişmeden kalır.

Ayrıntılar
İade Değerleri
WEAVE_NO_ERROR
Okuyucunun yeni bir öğeye başarıyla yerleştirilip yerleştirilmediği.
WEAVE_END_OF_TLV
Başka öğe yoksa.
WEAVE_ERROR_TLV_UNDERRUN
Temel TLV kodlaması erken sona ererse.
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ş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 değeri NULL olmadığında kullanılabilir.

Kapsayıcı Sonucunu Doğrulama

WEAVE_ERROR VerifyEndOfContainer(
  void
)

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

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önüş değerini kontrol etmeye eşdeğer bir kolaylık yöntemidir.

Ayrıntılar
İade Değerleri
WEAVE_NO_ERROR
Okunacak başka TLV öğesi yoksa.
WEAVE_ERROR_UNEXPECTED_TLV_ELEMENT
Koleksiyonda başka bir TLV öğesi bulunduysa.
WEAVE_ERROR_TLV_UNDERRUN
Temel TLV kodlaması erken sona ererse.
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ş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 değeri NULL olmadığında kullanılabilir.

Korumalı işlevler

ClearElementState

void ClearElementState(
  void
)

TLVReader'ın 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.

Öğe Türü

TLVElementType ElementType(
  void
) const 

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

Sağlama Verileri

WEAVE_ERROR EnsureData(
  WEAVE_ERROR noDataErr
)

GetElementHeadLength

WEAVE_ERROR GetElementHeadLength(
  uint8_t & elemHeadBytes
) const 

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

Açık kapsayıcı

bool IsContainerOpen(
  void
) const 

Okuma Verileri

WEAVE_ERROR ReadData(
  uint8_t *buf,
  uint32_t len
)

ReadElement öğesi

WEAVE_ERROR ReadElement(
  void
)

ReadTag

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

Kapsayıcı Açılışı

void SetContainerOpen(
  bool aContainerOpen
)

Atlama Verileri

WEAVE_ERROR SkipData(
  void
)

Mevcut TLV'de bulunan tüm verileri hedef arabelleğe almadan okuyun.

Ayrıntılar
İade Değerleri
WEAVE_NO_ERROR
Okuyucunun verilerin sonunda başarılı olup olmadığı.
other
Yapılandırılmış GetNextBuffer() işlevi tarafından döndürülen diğer Weave veya platform hata kodları. Yalnızca GetNextBuffer değeri NULL olmadığında kullanılabilir.

KapsayıcıSonuna Atla

WEAVE_ERROR SkipToEndOfContainer(
  void
)

Doğrulama Öğesi

WEAVE_ERROR VerifyElement(
  void
)

Korumalı statik işlevler

Hata Alınan Sonraki Arabellek

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

GetNextPacket Arabelleğe Al

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