nl :: نسج:: TLV :: TLVReader

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

يوفر محلل ذاكرة فعالة للبيانات المشفرة في نسج TLV الشكل.

ملخص

TLVReader تنفذ إلى الأمام فقط، "على غرار سحب" محلل للنسج TLV البيانات. وTLVReader يعمل الكائن باعتباره المؤشر الذي يمكن استخدامه لتكرار عبر سلسلة من TLV العناصر وتفسير محتوياتها. عند وضعه على عنصر، يمكن لتطبيقات إجراء مكالمات إلى القارئ الحصول على () طرق الاستعلام نوع العنصر الحالي والعلامة، واستخراج أي قيمة المرتبطة بها. القارئ التالي () يستخدم طريقة للمضي قدما من عنصر إلى عنصر.

ATLVReader الكائن دائما وضع إما قبل، أو بعد TLV عنصر. عندما تهيئة أولا،TLVReader يتوضع مباشرة قبل العنصر الأول من الترميز. لبدء القراءة، يجب تطبيق إجراء مكالمة الأولية إلى التالي () طريقة لوضع القارئ على العنصر الأول. عندما عنصر الحاوية encounteredeither هيكل، مجموعة أو paththe OpenContainer () أو EnterContainer () أساليب يمكن استخدامها لأعاد خلال محتويات الحاوية.

عندما يصل القارئ نهاية TLV الترميز، أو العنصر الأخير ضمن حاوية، فإنه يشير إلى التطبيق من خلال العودة خطأ WEAVE_END_OF_TLV من التالي () الأسلوب. وسوف تستمر القارئ للعودة WEAVE_END_OF_TLV حتى يتم إعادة تهيئة ذلك، أو خرجت الحاوية الحالية (عبر CloseContainer () / ExitContainer () ).

ATLVReader الكائن يمكن تحليل البيانات مباشرة من مخزن الإدخال المؤقت الثابتة، أو من سلسلة من واحد أو أكثر PacketBuffers. بالإضافة إلى ذلك، يمكن لتطبيقات العرض على GetNextBuffer وظيفة لبيانات تغذية للقارئ من مصدر التعسفي، على سبيل المثال مأخذ أو منفذ تسلسلي.

ميراث

الفئات الفرعية المعروفة المباشرة:
  nl :: Weave :: Profiles :: DataManagement_Current :: CircularEventReader
  nl :: Weave :: TLV :: CircularTLVReader

الأنواع العامة

GetNextBufferFunct )(TLVReader &reader, uintptr_t &bufHandle, const uint8_t *&bufStart, uint32_t &bufLen) WEAVE_ERROR (*
وظيفة التي يمكن استخدامها لاسترداد إضافية TLV البيانات ليتم تحليل.

السمات العامة

AppData
void *
حقل مؤشر يمكن استخدامه للبيانات الخاصة بالتطبيق.
GetNextBuffer
مؤشر إلى وظيفة من شأنها أن تنتج إدخال البيانات لTLVReader الكائن.
ImplicitProfileId
uint32_t
معرف الملف الشخصي الذي سيتم استخدامه لعلامات الملف الشخصي المشفرة في شكل ضمني.

السمات المحمية

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 *

الوظائف العامة

CloseContainer (TLVReader & containerReader)
يكمل القراءة من TLV حاوية بعد استدعاء OpenContainer () .
DupBytes (uint8_t *& buf, uint32_t & dataLen)
تخصيص وإرجاع مخزن مؤقت يحتوي على قيمة البايت الحالي أو سلسلة UTF8.
DupString (char *& buf)
يخصص ويعيد مخزنًا مؤقتًا يحتوي على قيمة منتهية بقيمة خالية من البايت الحالي أو سلسلة UTF8.
EnterContainer ( TLVType & outerContainerType)
بإعدادTLVReader كائن لقراءة أعضاء TLV عنصر حاوية.
ExitContainer ( TLVType outerContainerType)
يكمل القراءة من TLV الحاويات وتستعد لTLVReader كائن لقراءة العناصر بعد الحاوية.
Get (bool & v)
احصل على قيمة العنصر الحالي كنوع منطقي.
Get (int8_t & v)
احصل على قيمة العنصر الحالي في صورة عدد صحيح ذي إشارة 8 بت.
Get (int16_t & v)
احصل على قيمة العنصر الحالي كعدد صحيح ذي إشارة 16 بت.
Get (int32_t & v)
احصل على قيمة العنصر الحالي كعدد صحيح موقعة 32 بت.
Get (int64_t & v)
احصل على قيمة العنصر الحالي كعدد صحيح ذي إشارة 64 بت.
Get (uint8_t & v)
احصل على قيمة العنصر الحالي كعدد صحيح 8 بت بدون إشارة.
Get (uint16_t & v)
احصل على قيمة العنصر الحالي كعدد صحيح بدون إشارة 16 بت.
Get (uint32_t & v)
احصل على قيمة العنصر الحالي كعدد صحيح بدون إشارة 32 بت.
Get (uint64_t & v)
احصل على قيمة العنصر الحالي كعدد صحيح بدون إشارة 64 بت.
Get (float & v)
Get (double & v)
احصل على قيمة العنصر الحالي كرقم فاصلة عائمة مزدوج الدقة.
GetBufHandle (void) const
uintptr_t
GetBytes (uint8_t *buf, uint32_t bufSize)
احصل على قيمة البايت الحالي أو عنصر سلسلة UTF8.
GetContainerType (void) const
إرجاع نوع الحاوية ضمنهTLVReader يقرأ حاليا.
GetControlByte (void) const
uint16_t
إرجاع بايت السيطرة المرتبطة الحالي TLV عنصر.
GetDataPtr (const uint8_t *& data)
الحصول على مؤشر إلى بايت المشفرة الأولي لل TLV بايت أو UTF8 عنصر السلسلة.
GetLength (void) const
uint32_t
إرجاع طول البيانات المرتبطة الحالي TLV عنصر.
GetLengthRead (void) const
uint32_t
لعرض العدد الإجمالي للبايتات التي تمت قراءتها منذ تهيئة القارئ.
GetReadPoint (void) const
const uint8_t *
الحصول على النقطة في مخزن الإدخال المؤقت الأساسي الذي يتوافق مع موضع القارئ الحالي.
GetRemainingLength (void) const
uint32_t
إرجاع العدد الإجمالي للبايتات التي يمكن قراءتها حتى الوصول إلى الحد الأقصى لطول القراءة.
GetString (char *buf, uint32_t bufSize)
الحصول على قيمة البايت الحالي أو عنصر سلسلة UTF8 كسلسلة منتهية فارغة.
GetTag (void) const
uint64_t
يعود العلامة المرتبطة الحالي TLV عنصر.
GetType (void) const
إرجاع نوع الحالي TLV عنصر.
Init (constTLVReader & aReader)
void
تهيئة وTLVReader كائن من آخرTLVReader الكائن.
Init (const uint8_t *data, uint32_t dataLen)
void
تهيئة وTLVReader الكائن القراءة من مخزن الإدخال المؤقت واحد.
Init ( PacketBuffer *buf, uint32_t maxLen)
void
تهيئة وTLVReader الكائن القراءة من PacketBuffer احد.
Init ( PacketBuffer *buf, uint32_t maxLen, bool allowDiscontiguousBuffers)
void
تهيئة وTLVReader الكائن القراءة من واحد أو أكثر PacketBuffers.
Next (void)
التقدم الذيTLVReader الكائن إلى القادم TLV عنصر يمكن ان تقرأ.
Next ( TLVType expectedType, uint64_t expectedTag)
التقدم الذيTLVReader الكائن إلى القادم TLV عنصر يمكن ان تقرأ، مؤكدا نوع وعلامة من العنصر الجديد.
OpenContainer (TLVReader & containerReader)
تهيئة جديدTLVReader كائن لقراءة أعضاء TLV عنصر حاوية.
Skip (void)
السلفTLVReader الكائن فور الحالي TLV عنصر.
VerifyEndOfContainer (void)
يتحقق هذا الكائن TVLReader هو في نهاية TLV الحاوية.

وظائف محمية

ClearElementState (void)
void
مسح حالةTLVReader .
ElementType (void) const
TLVElementType
هذا أسلوب خاص يقوم بإرجاع TLVElementType من mControlByte.
EnsureData ( WEAVE_ERROR noDataErr)
GetElementHeadLength (uint8_t & elemHeadBytes) const
هذا هو أسلوب خاص يستخدم لحساب طول TLV رئيس العنصر.
IsContainerOpen (void) const
bool
ReadData (uint8_t *buf, uint32_t len)
ReadElement (void)
ReadTag (TLVTagControl tagControl, const uint8_t *& p)
uint64_t
SetContainerOpen (bool aContainerOpen)
void
SkipData (void)
تخطي أي البيانات الواردة في الحالي TLV من خلال قراءة أكثر من ذلك دون المخزن المؤقت الوجهة.
SkipToEndOfContainer (void)
VerifyElement (void)

وظائف ثابتة محمية

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)

الأنواع العامة

GetNextBufferFunct

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

وظيفة التي يمكن استخدامها لاسترداد إضافية TLV البيانات ليتم تحليل.

وتستخدم وظائف من هذا النوع لبيانات تغذية الإدخال إلىTLVReader . عند الاتصال ، من المتوقع أن تنتج الوظيفة بيانات إضافية للقارئ لتحليل أو إرسال إشارة للقارئ بأنه لا توجد بيانات أخرى متاحة.

تفاصيل
المعلمات
[in] reader
إشارة إلىTLVReader الكائن الذي يطلب إدخال البيانات.
[in,out] bufHandle
مرجع لقيمة uintptr_t التي يمكن أن تستخدمها الوظيفة لتخزين بيانات السياق بين الاستدعاءات. تتم تهيئة هذه القيمة إلى 0 قبل المكالمة الأولى.
[in,out] bufStart
مرجع لمؤشر بيانات. عند الدخول إلى الوظيفة، bufStart نقطة لبايت واحد وراء الماضي TLV بايت البيانات المستهلكة من قبل القارئ. عند الخروج، ومن المتوقع bufStart للإشارة إلى البايت الأول من جديدة TLV البيانات المراد تحليلها. يمكن أن تكون قيمة المؤشر الجديدة داخل نفس المخزن المؤقت مثل البيانات المستهلكة سابقًا ، أو يمكن أن تشير إلى مخزن مؤقت جديد تمامًا.
[out] bufLen
إشارة إلى عدد صحيح غير الموقعة أن وظيفة يجب تعيين لعدد من TLV البيانات بايت إعادته. إذا كانت نهاية المدخلات TLV تم التوصل إلى البيانات، ينبغي للوظيفة تعيين هذه القيمة إلى 0.
إرجاع القيم
WEAVE_NO_ERROR
إذا كانت وظيفة أنتجت بنجاح أكثر TLV البيانات، أو نهاية إدخال البيانات تم التوصل اليه ( bufLen يجب تعيين إلى 0 في هذه الحالة).
other
رموز خطأ أخرى خاصة بالنسيج أو النظام الأساسي تشير إلى حدوث خطأ يمنع الوظيفة من إنتاج البيانات المطلوبة.

السمات العامة

معلومات التطبيق

void * AppData

حقل مؤشر يمكن استخدامه للبيانات الخاصة بالتطبيق.

GetNextBuffer

GetNextBufferFunct GetNextBuffer

مؤشر إلى وظيفة من شأنها أن تنتج إدخال البيانات لTLVReader الكائن.

إذا تم التعيين على NULL (القيمة الافتراضية) ، فسيفترض القارئ عدم توفر بيانات إدخال أخرى.

يمكن تعيين GetNextBuffer بواسطة تطبيق في أي وقت ، ولكن يتم تعيينه عادةً عند تهيئة القارئ.

راجع تعريف نوع GetNextBufferFunct للحصول على معلومات إضافية حول تنفيذ دالة GetNextBuffer.

ImplicitProfileId

uint32_t ImplicitProfileId

معرف الملف الشخصي الذي سيتم استخدامه لعلامات الملف الشخصي المشفرة في شكل ضمني.

عندما يصادف القارئ علامة المستوى تحديدا التي تم ترميزها في شكل ضمني، فإنه يستخدم قيمة ImplicitProfileId الملكية باعتبارها عضوية رقم المفترضة للعلامة.

افتراضيا، ImplicitProfileId يتم تعيين الخاصية إلى kProfileIdNotSpecified. عندما فك TLV يحتوي على علامات ترميز ضمنيا، يجب أن التطبيقات تعيين ImplicitProfileId قبل قراءة أي TLV عناصر وجود مثل هذه العلامات. عادةً ما يعتمد معرف ملف التعريف المناسب على سياق التطبيق أو البروتوكول الذي يتم التحدث به.

وإذا تم مصادفة علامة ضمنيا-المشفرة في حين ImplicitProfileId ومن المقرر أن kProfileIdNotSpecified، فإن القارئ إرجاع WEAVE_ERROR_UNKNOWN_IMPLICIT_TLV_TAG الخطأ.

السمات المحمية

mBufEnd

const uint8_t * mBufEnd

mBufHandle

uintptr_t mBufHandle

mContainerType

TLVType mContainerType

mControlByte

uint16_t mControlByte

mElemLenOrVal

uint64_t mElemLenOrVal

mElemTag

uint64_t mElemTag

قراءة mLen

uint32_t mLenRead

إم ماكس لين

uint32_t mMaxLen

mReadPoint

const uint8_t * mReadPoint

الوظائف العامة

CloseContainer

WEAVE_ERROR CloseContainer(
  TLVReader & containerReader
)

يكمل القراءة من TLV حاوية بعد استدعاء OpenContainer () .

و CloseContainer () طريقة استعادة الدولة من أحد الوالدينTLVReader الكائن بعد استدعاء OpenContainer () . لكل دعوة إلى OpenContainer () التطبيقات يجب إجراء مكالمة الموافق CloseContainer () ، ويمر إشارة إلى نفس القارئ حاوية لكلتا الطريقتين.

عندما CloseContainer () العودة، ويتم وضع القارئ الأم مباشرة قبل العنصر الأول الذي يلي الحاوية. من هذه النقطة يمكن استخدام أحد تطبيقات التالي () طريقة للمضي قدما من خلال أي العناصر المتبقية.

يمكن لتطبيقات الاتصال قريب CloseContainer () على القارئ الأم في أي وقت من الأوقات، بغض النظر عن ما إذا كانت جميع العناصر في حاوية الأساسية تم قراءة. بعد CloseContainer () وقد دعا، يجب تطبيق ينظر القارئ حاوية "دي تهيئة 'ويجب عدم استخدام أكثر من ذلك دون إعادة تهيئة عليه.

تفاصيل
المعلمات
[in] containerReader
إشارة إلىTLVReader الكائن التي تم توفيرها ل OpenContainer () الأسلوب.
إرجاع القيم
WEAVE_NO_ERROR
إذا نجحت الطريقة.
WEAVE_ERROR_INCORRECT_STATE
إذا OpenContainer () لم يطلق على القارئ، أو إذا كان القارئ حاوية لا يتطابق مع واحد تمريرها إلى OpenContainer () الأسلوب.
WEAVE_ERROR_TLV_UNDERRUN
إذا الكامنة TLV يشفر انتهت قبل الأوان.
WEAVE_ERROR_INVALID_TLV_ELEMENT
إذا كان القارئ اجه غير صالح أو غير معتمد TLV نوع العنصر.
WEAVE_ERROR_INVALID_TLV_TAG
إذا كان القارئ اجه TLV العلامة في سياق غير صالح.
other
غيرها من نسج أو خطأ منصة رموز إرجاعها بواسطة تكوين GetNextBuffer () وظيفة. ممكن فقط عندما يكون GetNextBuffer غير NULL.

DupBytes

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

تخصيص وإرجاع مخزن مؤقت يحتوي على قيمة البايت الحالي أو سلسلة UTF8.

تقوم هذه الطريقة بإنشاء مخزن مؤقت وإرجاع نسخة من البيانات المرتبطة بالبايت أو عنصر سلسلة UTF-8 في الموضع الحالي. يتم الحصول على ذاكرة المخزن المؤقت باستخدام malloc () ويجب تحريرها مجانًا () بواسطة المتصل عندما لا تكون هناك حاجة إليها.

تفاصيل
المعلمات
[out] buf
إشارة إلى مؤشر الذي العازلة-تخصيص كومة من dataLen سيتم تعيين بايت على النجاح.
[out] dataLen
إشارة إلى تخزين حجم بالبايت من buf على النجاح.
إرجاع القيم
WEAVE_NO_ERROR
إذا نجحت الطريقة.
WEAVE_ERROR_WRONG_TLV_TYPE
إذا كان العنصر الحالي ليس TLV بايت أو UTF8 سلسلة، أو لا يتم وضع القارئ على عنصر.
WEAVE_ERROR_NO_MEMORY
إذا تعذر تخصيص الذاكرة لمخزن الإخراج.
WEAVE_ERROR_TLV_UNDERRUN
إذا الكامنة TLV يشفر انتهت قبل الأوان.
WEAVE_ERROR_UNSUPPORTED_WEAVE_FEATURE
إذا كانت المنصة المستهدفة لا تدعم malloc () ومجاني ().
other
غيرها من نسج أو خطأ منصة رموز إرجاعها بواسطة تكوين GetNextBuffer () وظيفة. ممكن فقط عندما يكون GetNextBuffer غير NULL.

دوبسترينج

WEAVE_ERROR DupString(
  char *& buf
)

يخصص ويعيد مخزنًا مؤقتًا يحتوي على قيمة منتهية بقيمة خالية من البايت الحالي أو سلسلة UTF8.

تقوم هذه الطريقة بإنشاء مخزن مؤقت وإرجاع نسخة منتهية بقيمة خالية من البيانات المرتبطة بالبايت أو عنصر سلسلة UTF-8 في الموضع الحالي. يتم الحصول على ذاكرة المخزن المؤقت باستخدام malloc () ويجب تحريرها مجانًا () بواسطة المتصل عندما لا تكون هناك حاجة إليها.

تفاصيل
المعلمات
[out] buf
مرجع لمؤشر سيتم تعيين مخزن مؤقت مخصص له كومة له عند النجاح.
إرجاع القيم
WEAVE_NO_ERROR
إذا نجحت الطريقة.
WEAVE_ERROR_WRONG_TLV_TYPE
إذا كان العنصر الحالي ليس TLV بايت أو UTF8 سلسلة، أو لا يتم وضع القارئ على عنصر.
WEAVE_ERROR_NO_MEMORY
إذا تعذر تخصيص الذاكرة لمخزن الإخراج.
WEAVE_ERROR_TLV_UNDERRUN
إذا الكامنة TLV يشفر انتهت قبل الأوان.
WEAVE_ERROR_UNSUPPORTED_WEAVE_FEATURE
إذا كانت المنصة المستهدفة لا تدعم malloc () ومجاني ().
other
غيرها من نسج أو خطأ منصة رموز إرجاعها بواسطة تكوين GetNextBuffer () وظيفة. ممكن فقط عندما يكون GetNextBuffer غير NULL.

أدخل الحاوية

WEAVE_ERROR EnterContainer(
  TLVType & outerContainerType
)

بإعدادTLVReader كائن لقراءة أعضاء TLV عنصر حاوية.

و EnterContainer () طريقة يستعد الحاليTLVReader الكائن لبدء قراءة عناصر عضوا في TLV الحاويات (هيكل، مجموعة أو المسار). لكل دعوة إلى EnterContainer () التطبيقات يجب إجراء مكالمة الموافق ExitContainer () .

عندما EnterContainer () يسمىTLVReader الكائن يجب وضع على عنصر حاوية يمكن ان تقرأ. تأخذ الطريقة مرجعًا لقيمة TLVType كوسيطة والتي سيتم استخدامها لحفظ سياق القارئ أثناء قراءته للحاوية.

عندما EnterContainer () إرجاع الأسلوب، يتم وضع القارئ مباشرة قبل أول عضو في الحاوية. دعا مرارا التالي () سوف تقدم للقارئ من خلال أعضاء المجموعة حتى يتم الوصول إلى النهاية، وعند هذه النقطة فإن القارئ العودة WEAVE_END_OF_TLV.

وبمجرد الانتهاء من تطبيق القراءة وعاء يمكن أن تستمر قراءة العناصر بعد الحاوية عن طريق استدعاء ExitContainer () الأسلوب.

تفاصيل
المعلمات
[out] outerContainerType
إشارة إلى قيمة TLVType ستتلقى سياق القارئ.
إرجاع القيم
WEAVE_NO_ERROR
إذا نجحت الطريقة.
WEAVE_ERROR_INCORRECT_STATE
إذا لم يتم وضع العنصر الحالي على عنصر حاوية.

ExitContainer

WEAVE_ERROR ExitContainer(
  TLVType outerContainerType
)

يكمل القراءة من TLV الحاويات وتستعد لTLVReader كائن لقراءة العناصر بعد الحاوية.

و ExitContainer () طريقة استعادة الدولة منTLVReader الكائن بعد استدعاء EnterContainer () . لكل دعوة إلى EnterContainer () التطبيقات يجب إجراء مكالمة الموافق ExitContainer () ، تمرير قيمة سياق إرجاعها بواسطة EnterContainer () الأسلوب.

عندما ExitContainer () العودة، ويتم وضع القارئ مباشرة قبل العنصر الأول الذي يلي الحاوية. من هذه النقطة يمكن استخدام أحد تطبيقات التالي () طريقة للمضي قدما من خلال أي العناصر المتبقية.

مرة واحدة EnterContainer () وقد دعا، يمكن لتطبيقات الاتصال ExitContainer () على القارئ في أي وقت من الأوقات، بغض النظر عما إذا كانت جميع العناصر في حاوية الكامنة القراءة.

تفاصيل
المعلمات
[in] outerContainerType
قيمة TLVType التي تم إرجاعها من قبل EnterContainer () الأسلوب.
إرجاع القيم
WEAVE_NO_ERROR
إذا نجحت الطريقة.
WEAVE_ERROR_INCORRECT_STATE
إذا OpenContainer () لم يطلق على القارئ، أو إذا كان القارئ حاوية لا يتطابق مع واحد تمريرها إلى OpenContainer () الأسلوب.
WEAVE_ERROR_TLV_UNDERRUN
إذا الكامنة TLV يشفر انتهت قبل الأوان.
WEAVE_ERROR_INVALID_TLV_ELEMENT
إذا كان القارئ اجه غير صالح أو غير معتمد TLV نوع العنصر.
WEAVE_ERROR_INVALID_TLV_TAG
إذا كان القارئ اجه TLV العلامة في سياق غير صالح.
other
غيرها من نسج أو خطأ منصة رموز إرجاعها بواسطة تكوين GetNextBuffer () وظيفة. ممكن فقط عندما يكون GetNextBuffer غير NULL.

يحصل

WEAVE_ERROR Get(
  bool & v
)

احصل على قيمة العنصر الحالي كنوع منطقي.

تفاصيل
المعلمات
[out] v
يتلقى القيمة المرتبطة الحالي TLV عنصر.
إرجاع القيم
WEAVE_NO_ERROR
إذا نجحت الطريقة.
WEAVE_ERROR_WRONG_TLV_TYPE
إذا كان العنصر الحالي ليس TLV نوع منطقية، أو لا يتم وضع القارئ على عنصر.

يحصل

WEAVE_ERROR Get(
  int8_t & v
)

احصل على قيمة العنصر الحالي في صورة عدد صحيح ذي إشارة 8 بت.

إذا كانت قيمة العدد الصحيح المشفر أكبر من نوع بيانات الإخراج ، فسيتم اقتطاع القيمة الناتجة.

تفاصيل
المعلمات
[out] v
يتلقى القيمة المرتبطة الحالي TLV عنصر.
إرجاع القيم
WEAVE_NO_ERROR
إذا نجحت الطريقة.
WEAVE_ERROR_WRONG_TLV_TYPE
إذا كان العنصر الحالي ليس TLV نوع عدد صحيح (وقعت أو غير الموقعة)، أو لا يتم وضع القارئ على عنصر.

يحصل

WEAVE_ERROR Get(
  int16_t & v
)

احصل على قيمة العنصر الحالي كعدد صحيح ذي إشارة 16 بت.

إذا كانت قيمة العدد الصحيح المشفر أكبر من نوع بيانات الإخراج ، فسيتم اقتطاع القيمة الناتجة.

تفاصيل
المعلمات
[out] v
يتلقى القيمة المرتبطة الحالي TLV عنصر.
إرجاع القيم
WEAVE_NO_ERROR
إذا نجحت الطريقة.
WEAVE_ERROR_WRONG_TLV_TYPE
إذا كان العنصر الحالي ليس TLV نوع عدد صحيح (وقعت أو غير الموقعة)، أو لا يتم وضع القارئ على عنصر.

يحصل

WEAVE_ERROR Get(
  int32_t & v
)

احصل على قيمة العنصر الحالي كعدد صحيح موقعة 32 بت.

إذا كانت قيمة العدد الصحيح المشفر أكبر من نوع بيانات الإخراج ، فسيتم اقتطاع القيمة الناتجة.

تفاصيل
المعلمات
[out] v
يتلقى القيمة المرتبطة الحالي TLV عنصر.
إرجاع القيم
WEAVE_NO_ERROR
إذا نجحت الطريقة.
WEAVE_ERROR_WRONG_TLV_TYPE
إذا كان العنصر الحالي ليس TLV نوع عدد صحيح (وقعت أو غير الموقعة)، أو لا يتم وضع القارئ على عنصر.

يحصل

WEAVE_ERROR Get(
  int64_t & v
)

احصل على قيمة العنصر الحالي كعدد صحيح ذي إشارة 64 بت.

إذا كانت قيمة العدد الصحيح المشفر أكبر من نوع بيانات الإخراج ، فسيتم اقتطاع القيمة الناتجة.

تفاصيل
المعلمات
[out] v
يتلقى القيمة المرتبطة الحالي TLV عنصر.
إرجاع القيم
WEAVE_NO_ERROR
إذا نجحت الطريقة.
WEAVE_ERROR_WRONG_TLV_TYPE
إذا كان العنصر الحالي ليس TLV نوع عدد صحيح (وقعت أو غير الموقعة)، أو لا يتم وضع القارئ على عنصر.

يحصل

WEAVE_ERROR Get(
  uint8_t & v
)

احصل على قيمة العنصر الحالي كعدد صحيح 8 بت بدون إشارة.

إذا كانت قيمة العدد الصحيح المشفر أكبر من نوع بيانات الإخراج ، فسيتم اقتطاع القيمة الناتجة. وبالمثل ، إذا كانت القيمة الصحيحة المشفرة سالبة ، فسيتم تحويل القيمة إلى قيمة غير موقعة.

تفاصيل
المعلمات
[out] v
يتلقى القيمة المرتبطة الحالي TLV عنصر.
إرجاع القيم
WEAVE_NO_ERROR
إذا نجحت الطريقة.
WEAVE_ERROR_WRONG_TLV_TYPE
إذا كان العنصر الحالي ليس TLV نوع عدد صحيح (وقعت أو غير الموقعة)، أو لا يتم وضع القارئ على عنصر.

يحصل

WEAVE_ERROR Get(
  uint16_t & v
)

احصل على قيمة العنصر الحالي كعدد صحيح بدون إشارة 16 بت.

إذا كانت قيمة العدد الصحيح المشفر أكبر من نوع بيانات الإخراج ، فسيتم اقتطاع القيمة الناتجة. وبالمثل ، إذا كانت القيمة الصحيحة المشفرة سالبة ، فسيتم تحويل القيمة إلى قيمة غير موقعة.

تفاصيل
المعلمات
[out] v
يتلقى القيمة المرتبطة الحالي TLV عنصر.
إرجاع القيم
WEAVE_NO_ERROR
إذا نجحت الطريقة.
WEAVE_ERROR_WRONG_TLV_TYPE
إذا كان العنصر الحالي ليس TLV نوع عدد صحيح (وقعت أو غير الموقعة)، أو لا يتم وضع القارئ على عنصر.

يحصل

WEAVE_ERROR Get(
  uint32_t & v
)

احصل على قيمة العنصر الحالي كعدد صحيح بدون إشارة 32 بت.

إذا كانت قيمة العدد الصحيح المشفر أكبر من نوع بيانات الإخراج ، فسيتم اقتطاع القيمة الناتجة. وبالمثل ، إذا كانت القيمة الصحيحة المشفرة سالبة ، فسيتم تحويل القيمة إلى قيمة غير موقعة.

تفاصيل
المعلمات
[out] v
يتلقى القيمة المرتبطة الحالي TLV عنصر.
إرجاع القيم
WEAVE_NO_ERROR
إذا نجحت الطريقة.
WEAVE_ERROR_WRONG_TLV_TYPE
إذا كان العنصر الحالي ليس TLV نوع عدد صحيح (وقعت أو غير الموقعة)، أو لا يتم وضع القارئ على عنصر.

يحصل

WEAVE_ERROR Get(
  uint64_t & v
)

احصل على قيمة العنصر الحالي كعدد صحيح بدون إشارة 64 بت.

إذا كانت قيمة العدد الصحيح المشفر سالبة ، فسيتم تحويل القيمة إلى قيمة غير موقعة.

تفاصيل
المعلمات
[out] v
يتلقى القيمة المرتبطة الحالي TLV عنصر.
إرجاع القيم
WEAVE_NO_ERROR
إذا نجحت الطريقة.
WEAVE_ERROR_WRONG_TLV_TYPE
إذا كان العنصر الحالي ليس TLV نوع عدد صحيح (وقعت أو غير الموقعة)، أو لا يتم وضع القارئ على عنصر.

يحصل

WEAVE_ERROR Get(
  float & v
)

يحصل

WEAVE_ERROR Get(
  double & v
)

احصل على قيمة العنصر الحالي كرقم فاصلة عائمة مزدوج الدقة.

تفاصيل
المعلمات
[out] v
يتلقى القيمة المرتبطة الحالي TLV عنصر.
إرجاع القيم
WEAVE_NO_ERROR
إذا نجحت الطريقة.
WEAVE_ERROR_WRONG_TLV_TYPE
إذا كان العنصر الحالي ليس TLV العائمة نوع نقطة، أو لا يتم وضع القارئ على عنصر.

GetBufHandle

uintptr_t GetBufHandle(
  void
) const 

GetBytes

WEAVE_ERROR GetBytes(
  uint8_t *buf,
  uint32_t bufSize
)

احصل على قيمة البايت الحالي أو عنصر سلسلة UTF8.

لتحديد المطلوب حجم مخزن الإدخال المؤقت، اتصل GetLength () طريقة قبل استدعاء GetBytes () .

تفاصيل
المعلمات
[in] buf
مؤشر إلى مخزن مؤقت لتلقي بيانات السلسلة.
[in] bufSize
حجم بالبايت من المخزن المؤقت أشار إليه buf .
إرجاع القيم
WEAVE_NO_ERROR
إذا نجحت الطريقة.
WEAVE_ERROR_WRONG_TLV_TYPE
إذا كان العنصر الحالي ليس TLV بايت أو UTF8 سلسلة، أو لا يتم وضع القارئ على عنصر.
WEAVE_ERROR_BUFFER_TOO_SMALL
إذا كان المخزن المؤقت المقدم صغيرًا جدًا بحيث لا يمكنه الاحتفاظ بالبيانات المرتبطة بالعنصر الحالي.
WEAVE_ERROR_TLV_UNDERRUN
إذا الكامنة TLV يشفر انتهت قبل الأوان.
other
غيرها من نسج أو خطأ منصة رموز إرجاعها بواسطة تكوين GetNextBuffer () وظيفة. ممكن فقط عندما يكون GetNextBuffer غير NULL.

GetContainerType

TLVType GetContainerType(
  void
) const 

إرجاع نوع الحاوية ضمنهTLVReader يقرأ حاليا.

و GetContainerType () الأسلوب بإرجاع نوع TLV حاوية ضمنهTLVReader يقرأ. إذا كانTLVReader يتوضع على المستوى الخارجي الأكثر من TLV الترميز (أي قبل، أو بعد والتى تمثل أفضل الخارجي TLV عنصر)، وطريقة سيعود kTLVType_NotSpecified.

تفاصيل
عائدات
وTLVType من الحاوية الحالية، أو kTLVType_NotSpecified إذا كانTLVReader وعدم وضعه في وعاء.

GetControlByte

uint16_t GetControlByte(
  void
) const 

إرجاع بايت السيطرة المرتبطة الحالي TLV عنصر.

من الناحية المثالية، لا أحد يحتاج معرفته عن البايت السيطرة وفقط تطبيق داخلي TLV يجب أن يكون الوصول إليها. لكن، مع ذلك، وبعد الوصول إلى بايت السيطرة مفيد لأغراض التصحيح من قبل TLV تصحيح المرافق (أي محاولة لفك البايت السيطرة العلامة عند الطباعة كبير TLV العازلة المحتويات).

تفاصيل
عائدات
عدد صحيح بدون إشارة تحتوي على بايت الرقابية المرتبطة الحالي TLV عنصر. يتم إرجاع kTLVControlByte_NotSpecified إذا لم يتم وضع القارئ على عنصر.

GetDataPtr

WEAVE_ERROR GetDataPtr(
  const uint8_t *& data
)

الحصول على مؤشر إلى بايت المشفرة الأولي لل TLV بايت أو UTF8 عنصر السلسلة.

تقوم هذه الطريقة بإرجاع مؤشر مباشر لقيمة السلسلة المشفرة داخل مخزن الإدخال المؤقت الأساسي. لتحقيق النجاح ، تتطلب الطريقة أن تكون قيمة السلسلة بأكملها موجودة في مخزن مؤقت واحد. وإلا فإن الأسلوب بإرجاع WEAVE_ERROR_TLV_UNDERRUN . هذا يجعل الطريقة محدودة الاستخدام عند قراءة البيانات من عدة مخازن مؤقتة غير متجاورة.

تفاصيل
المعلمات
[out] data
مرجع إلى مؤشر ثابت سيتلقى مؤشرًا إلى بيانات السلسلة الأساسية.
إرجاع القيم
WEAVE_NO_ERROR
إذا نجحت الطريقة.
WEAVE_ERROR_WRONG_TLV_TYPE
إذا كان العنصر الحالي ليس TLV بايت أو UTF8 سلسلة، أو لا يتم وضع القارئ على عنصر.
WEAVE_ERROR_TLV_UNDERRUN
إذا الكامنة TLV يشفر انتهت قبل الأوان أو لم يرد قيمة العنصر سلسلة الحالي داخل منطقة عازلة متجاورة واحد.
other
غيرها من نسج أو خطأ منصة رموز إرجاعها بواسطة تكوين GetNextBuffer () وظيفة. ممكن فقط عندما يكون GetNextBuffer غير NULL.

GetLength

uint32_t GetLength(
  void
) const 

إرجاع طول البيانات المرتبطة الحالي TLV عنصر.

طول البيانات ينطبق فقط على عناصر من نوع سلسلة UTF8 أو سلسلة بايت. بالنسبة إلى سلاسل UTF8 ، تكون القيمة التي يتم إرجاعها هي عدد البايت في السلسلة ، وليس عدد الأحرف.

تفاصيل
عائدات
طول (بالبايت) من البيانات المرتبطة الحالي TLV العنصر، أو 0 إذا كان العنصر الحالي ليست سلسلة سلسلة UTF8 أو بايت، أو إذا لم يتم وضع القارئ على عنصر.

GetLengthRead

uint32_t GetLengthRead(
  void
) const 

لعرض العدد الإجمالي للبايتات التي تمت قراءتها منذ تهيئة القارئ.

تفاصيل
عائدات
إجمالي عدد وحدات البايت التي تمت قراءتها منذ بدء تشغيل القارئ.

GetReadPoint

const uint8_t * GetReadPoint(
  void
) const 

الحصول على النقطة في مخزن الإدخال المؤقت الأساسي الذي يتوافق مع موضع القارئ الحالي.

تفاصيل
عائدات
مؤشر في المخزن المؤقت للإدخال الأساسي يتوافق مع الموضع الحالي للقارئ.

GetRemainingLength

uint32_t GetRemainingLength(
  void
) const 

إرجاع العدد الإجمالي للبايتات التي يمكن قراءتها حتى الوصول إلى الحد الأقصى لطول القراءة.

تفاصيل
عائدات
العدد الإجمالي للبايتات التي يمكن قراءتها حتى الوصول إلى الحد الأقصى لطول القراءة.

GetString

WEAVE_ERROR GetString(
  char *buf,
  uint32_t bufSize
)

الحصول على قيمة البايت الحالي أو عنصر سلسلة UTF8 كسلسلة منتهية فارغة.

لتحديد المطلوب حجم مخزن الإدخال المؤقت، اتصل GetLength () طريقة قبل استدعاء GetBytes () . يجب أن يكون مخزن الإدخال المؤقت أكبر ببايت واحد على الأقل من طول السلسلة لتتوافق مع الحرف الفارغ.

تفاصيل
المعلمات
[in] buf
مؤشر إلى مخزن مؤقت لتلقي بيانات سلسلة البايت.
[in] bufSize
حجم بالبايت من المخزن المؤقت أشار إليه buf .
إرجاع القيم
WEAVE_NO_ERROR
إذا نجحت الطريقة.
WEAVE_ERROR_WRONG_TLV_TYPE
إذا كان العنصر الحالي ليس TLV بايت أو UTF8 سلسلة، أو لا يتم وضع القارئ على عنصر.
WEAVE_ERROR_BUFFER_TOO_SMALL
إذا كان المخزن المؤقت المقدم صغيرًا جدًا بحيث لا يمكنه الاحتفاظ بالبيانات المرتبطة بالعنصر الحالي.
WEAVE_ERROR_TLV_UNDERRUN
إذا الكامنة TLV يشفر انتهت قبل الأوان.
other
غيرها من نسج أو خطأ منصة رموز إرجاعها بواسطة تكوين GetNextBuffer () وظيفة. ممكن فقط عندما يكون GetNextBuffer غير NULL.

GetTag

uint64_t GetTag(
  void
) const 

يعود العلامة المرتبطة الحالي TLV عنصر.

القيمة التي تم إرجاعها من قبل GetTag () يمكن استخدامها مع وظائف العلامة فائدة ( IsProfileTag () ، IsContextTag () ، ProfileIdFromTag () ، الخ) لتحديد نوع العلامة ولاستخراج مختلف القيم العلامة المجال.

تفاصيل
عائدات
عدد صحيح بدون إشارة تحتوي على معلومات حول العلامة المرتبطة الحالي TLV عنصر.

GetType

TLVType GetType(
  void
) const 

إرجاع نوع الحالي TLV عنصر.

تفاصيل
عائدات
قيمة TLVType يصف نوع بيانات الحالي TLV عنصر. إذا لم يتم وضع القارئ في TLV عنصر، ستكون قيمة الإرجاع kTLVType_NotSpecified.

فيه

void Init(
  const TLVReader & aReader
)

تهيئة وTLVReader كائن من آخرTLVReader الكائن.

تفاصيل
المعلمات
[in] aReader
إشارة للقراءة فقط لTLVReader لتهيئة هذا من.

فيه

void Init(
  const uint8_t *data,
  uint32_t dataLen
)

تهيئة وTLVReader الكائن القراءة من مخزن الإدخال المؤقت واحد.

تفاصيل
المعلمات
[in] data
مؤشر إلى العازلة التي تحتوي على TLV البيانات ليتم تحليل.
[in] dataLen
طول TLV البيانات ليتم تحليل.

فيه

void Init(
  PacketBuffer *buf,
  uint32_t maxLen
)

تهيئة وTLVReader الكائن القراءة من PacketBuffer احد.

يبدأ التحليل عند موضع بدء المخزن المؤقت (buf-> DataStart ()) ويستمر حتى نهاية البيانات في المخزن المؤقت (كما هو موضح بواسطة buf-> Datalen ()) ، أو تم تحليل maxLen بايت.

تفاصيل
المعلمات
[in] buf
مؤشر إلى PacketBuffer تحتوي على TLV البيانات ليتم تحليل.
[in] maxLen
الحد الأقصى للبايت المراد تحليله. افتراضات على مقدار البيانات في المخزن المؤقت للإدخال.

فيه

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

تهيئة وTLVReader الكائن القراءة من واحد أو أكثر PacketBuffers.

يبدأ التحليل عند موضع بدء المخزن المؤقت الأولي (buf-> DataStart ()). إذا allowDiscontiguousBuffers غير صحيح، فإن القارئ تقدم من خلال سلسلة من مخازن تربطها بهم التالي) ( المؤشرات. يستمر التحليل حتى يتم استهلاك جميع البيانات الموجودة في سلسلة المخزن المؤقت (كما هو موضح بواسطة buf-> Datalen ()) ، أو يتم تحليل maxLen بايت.

تفاصيل
المعلمات
[in] buf
مؤشر إلى PacketBuffer تحتوي على TLV البيانات ليتم تحليل.
[in] maxLen
الحد الأقصى للبايت المراد تحليله. افتراضيات إلى إجمالي كمية البيانات في سلسلة المخزن المؤقت للإدخال.
[in] allowDiscontiguousBuffers
إذا كان هذا صحيحًا ، فانتقل إلى المخزن المؤقت التالي في السلسلة بمجرد استهلاك جميع البيانات الموجودة في المخزن المؤقت الحالي. إذا كانت خاطئة ، فتوقف عن التحليل في نهاية المخزن المؤقت الأولي.

التالي

WEAVE_ERROR Next(
  void
)

التقدم الذيTLVReader الكائن إلى القادم TLV عنصر يمكن ان تقرأ.

في التالي () مواقف طريقة الكائن القارئ على العنصر التالي في TLV ترميز أن يتواجد في سياق احتواء نفسه. على وجه الخصوص، إذا تم وضع القارئ على المستوى الخارجي الأكثر من TLV الترميز، داعيا التالي () سوف تقدم للقارئ أن القادم، أعلى معظم عنصر. إذا تم وضع القارئ ضمن TLV عنصر حاوية (هيكل، مجموعة أو المسار)، داعيا التالي () سوف تقدم للقارئ أن العنصر العضو التالي من الحاوية.

منذ التالي () يقيد القارئ الحركة إلى سياق الاحتواء الحالي، داعيا التالي () عندما يتم وضع القارئ في عنصر حاوية سوف تقدم على الحاوية، وتخطي عناصر الأعضاء فيها (وأعضاء أي حاويات المتداخلة) حتى يصل أولا عنصر بعد الحاوية.

عندما لا يكون هناك عناصر أخرى في سياق احتواء معين في التالي () طريقة سيعود WEAVE_END_OF_TLV خطأ وموقف القارئ لن تتغير.

تفاصيل
إرجاع القيم
WEAVE_NO_ERROR
إذا تم وضع القارئ بنجاح على عنصر جديد.
WEAVE_END_OF_TLV
إذا لم تتوفر عناصر أخرى.
WEAVE_ERROR_TLV_UNDERRUN
إذا الكامنة TLV يشفر انتهت قبل الأوان.
WEAVE_ERROR_INVALID_TLV_ELEMENT
إذا كان القارئ اجه غير صالح أو غير معتمد TLV نوع العنصر.
WEAVE_ERROR_INVALID_TLV_TAG
إذا كان القارئ اجه TLV العلامة في سياق غير صالح.
WEAVE_ERROR_UNKNOWN_IMPLICIT_TLV_TAG
إذا كان القارئ اجه المشفرة ضمنيا- TLV العلامة التي هوية الشخصية المقابلة غير معروف.
other
غيرها من نسج أو خطأ منصة رموز إرجاعها بواسطة تكوين GetNextBuffer () وظيفة. ممكن فقط عندما يكون GetNextBuffer غير NULL.

التالي

WEAVE_ERROR Next(
  TLVType expectedType,
  uint64_t expectedTag
)

التقدم الذيTLVReader الكائن إلى القادم TLV عنصر يمكن ان تقرأ، مؤكدا نوع وعلامة من العنصر الجديد.

في التالي (TLVType expectedType، uint64_t expectedTag) طريقة هي طريقة ملائمة له نفس السلوك كما التالي () ، ولكن أيضا التحقق من أن نوع وعلامة من جديد TLV عنصر تطابق الحجج الموردة.

تفاصيل
المعلمات
[in] expectedType
نوع البيانات المتوقع للعنصر التالي.
[in] expectedTag
العلامة المتوقعة للعنصر التالي.
إرجاع القيم
WEAVE_NO_ERROR
إذا تم وضع القارئ بنجاح على عنصر جديد.
WEAVE_END_OF_TLV
إذا لم تتوفر عناصر أخرى.
WEAVE_ERROR_WRONG_TLV_TYPE
إذا كان نوع من العنصر الجديد لا يطابق قيمة expectedType حجة.
WEAVE_ERROR_UNEXPECTED_TLV_ELEMENT
إذا كانت العلامة المرتبطة العنصر الجديد لا يطابق قيمة expectedTag حجة.
WEAVE_ERROR_TLV_UNDERRUN
إذا الكامنة TLV يشفر انتهت قبل الأوان.
WEAVE_ERROR_INVALID_TLV_ELEMENT
إذا كان القارئ اجه غير صالح أو غير معتمد TLV نوع العنصر.
WEAVE_ERROR_INVALID_TLV_TAG
إذا كان القارئ اجه TLV العلامة في سياق غير صالح.
other
غيرها من نسج أو خطأ منصة رموز إرجاعها بواسطة تكوين GetNextBuffer () وظيفة. ممكن فقط عندما يكون GetNextBuffer غير NULL.

OpenContainer

WEAVE_ERROR OpenContainer(
  TLVReader & containerReader
)

تهيئة جديدTLVReader كائن لقراءة أعضاء TLV عنصر حاوية.

و OpenContainer () طريقة تهيئة جديدTLVReader كائن لقراءة العناصر عضو في TLV الحاويات (هيكل، مجموعة أو المسار). عندما OpenContainer () يسمى، والحاليةTLVReader يجب وضع الكائن على عنصر حاوية يمكن ان تقرأ. تأخذ الطريقة كحجة وحيدة لها إشارة إلى قارئ جديد سيتم تهيئته لقراءة الحاوية. ويعرف هذا القارئ وقارئ حاوية في حين أن القارئ الذي OpenContainer () يسمى يعرف القارئ الأم.

عندما OpenContainer () إرجاع الأسلوب، يتم وضع القارئ الحاويات مباشرة قبل أول عضو في الحاوية. داعيا التالي () على القارئ حاوية سوف تقدم من خلال أعضاء المجموعة حتى النهاية هو التوصل إليه، وعند هذه النقطة فإن القارئ العودة WEAVE_END_OF_TLV.

أثناء فتح قارئ الحاوية ، يجب ألا تقوم التطبيقات بإجراء مكالمات أو تغيير حالة القارئ الأصلي. وبمجرد انتهاء تطبيق باستخدام القارئ حاوية يجب أن إغلاقه عن طريق الاتصال CloseContainer () على القارئ الأم، ويمر القارئ حاوية كحجة. قد تغلق التطبيقات قارئ الحاوية في أي وقت ، مع أو بدون قراءة جميع العناصر الموجودة في الحاوية الأساسية. بعد إغلاق قارئ الحاوية ، قد تستمر التطبيقات في استخدامها للقارئ الأصلي.

يرث قارئ الحاوية خصائص تكوين متنوعة من القارئ الأصلي. هؤلاء هم:

  • معرف ملف التعريف الضمني (ImplicitProfileId)
  • مؤشر بيانات التطبيق (AppData)
  • مؤشر دالة GetNextBuffer

تفاصيل
المعلمات
[out] containerReader
إشارة إلىTLVReader الكائن الذي سيتم تهيئة لقراءة أفراد العنصر حاوية الحالي. يتم الكتابة فوق أي بيانات مرتبطة بالكائن المقدم.
إرجاع القيم
WEAVE_NO_ERROR
إذا نجحت الطريقة.
WEAVE_ERROR_INCORRECT_STATE
إذا لم يتم وضع العنصر الحالي على عنصر حاوية.

يتخطى

WEAVE_ERROR Skip(
  void
)

السلفTLVReader الكائن فور الحالي TLV عنصر.

ل تخطي () مواقف طريقة الكائن القارئ مباشرة بعد الحالي TLV عنصر، بحيث استدعاء لاحقة التالي () سوف تقدم للقارئ أن العنصر التالي. مثل التالي () ، إذا تم وضع القارئ على عنصر الحاويات في وقت المكالمة، أعضاء الحاوية سيتم تخطي. إذا لم يتم وضع القارئ على أي عنصر ، فإن موضعه يظل دون تغيير.

تفاصيل
إرجاع القيم
WEAVE_NO_ERROR
إذا تم وضع القارئ بنجاح على عنصر جديد.
WEAVE_END_OF_TLV
إذا لم تتوفر عناصر أخرى.
WEAVE_ERROR_TLV_UNDERRUN
إذا الكامنة TLV يشفر انتهت قبل الأوان.
WEAVE_ERROR_INVALID_TLV_ELEMENT
إذا كان القارئ اجه غير صالح أو غير معتمد TLV نوع العنصر.
WEAVE_ERROR_INVALID_TLV_TAG
إذا كان القارئ اجه TLV العلامة في سياق غير صالح.
other
غيرها من نسج أو خطأ منصة رموز إرجاعها بواسطة تكوين GetNextBuffer () وظيفة. ممكن فقط عندما يكون GetNextBuffer غير NULL.

VerifyEndOfContainer

WEAVE_ERROR VerifyEndOfContainer(
  void
)

يتحقق هذا الكائن TVLReader هو في نهاية TLV الحاوية.

و VerifyEndOfContainer () يتحقق طريقة أنه لا توجد المزيد من TLV عناصر يمكن ان تقرأ داخل الحالية TLV الحاوية. هذا هو وسيلة الراحة التي ما يعادل يدعو التالي () والتحقق من وجود قيمة إرجاع WEAVE_END_OF_TLV.

تفاصيل
إرجاع القيم
WEAVE_NO_ERROR
If there are no further TLV elements to be read.
WEAVE_ERROR_UNEXPECTED_TLV_ELEMENT
If another TLV element was found in the collection.
WEAVE_ERROR_TLV_UNDERRUN
If the underlying TLV encoding ended prematurely.
WEAVE_ERROR_INVALID_TLV_ELEMENT
If the reader encountered an invalid or unsupported TLV element type.
WEAVE_ERROR_INVALID_TLV_TAG
If the reader encountered a TLV tag in an invalid context.
other
Other Weave or platform error codes returned by the configured GetNextBuffer() function. Only possible when GetNextBuffer is non-NULL.

وظائف محمية

ClearElementState

void ClearElementState(
  void
)

Clear the state of theTLVReader .

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

ElementType

TLVElementType ElementType(
  void
) const 

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

EnsureData

WEAVE_ERROR EnsureData(
  WEAVE_ERROR noDataErr
)

GetElementHeadLength

WEAVE_ERROR GetElementHeadLength(
  uint8_t & elemHeadBytes
) const 

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

IsContainerOpen

bool IsContainerOpen(
  void
) const 

ReadData

WEAVE_ERROR ReadData(
  uint8_t *buf,
  uint32_t len
)

ReadElement

WEAVE_ERROR ReadElement(
  void
)

ReadTag

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

SetContainerOpen

void SetContainerOpen(
  bool aContainerOpen
)

SkipData

WEAVE_ERROR SkipData(
  void
)

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

تفاصيل
إرجاع القيم
WEAVE_NO_ERROR
If the reader was successfully positioned at the end of the data.
other
Other Weave or platform error codes returned by the configured GetNextBuffer() function. Only possible when GetNextBuffer is non-NULL.

SkipToEndOfContainer

WEAVE_ERROR SkipToEndOfContainer(
  void
)

VerifyElement

WEAVE_ERROR VerifyElement(
  void
)

Protected static functions

FailGetNextBuffer

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

GetNextPacketBuffer

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