Google is committed to advancing racial equity for Black communities. See how.

এনএল :: তাঁত :: টিএলভি :: TLVReader

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

বুনা মধ্যে এনকোড ডেটার জন্য একটি মেমরি দক্ষ পার্সার প্রদান করে TLV বিন্যাস।

সারসংক্ষেপ

TLVReader কার্যকরী একটা ফরওয়ার্ড কেবল-, "পুল শৈলী" বুনা জন্য পার্সার TLV তথ্য।TLVReader বস্তুর একটি কার্সার যে একটা ক্রম পুনরুক্তি উপর ব্যবহার করা যেতে পারে হিসেবে কাজ TLV উপাদান এবং তাদের বিষয়বস্তু ব্যাখ্যা। যখন একটি উপাদান স্থান, অ্যাপ্লিকেশন পাঠকের কাছে কল করতে পারেন () পান বর্তমান উপাদান ধরন এবং ট্যাগ ক্যোয়ারীতে পদ্ধতি, এবং যেকোনো সংশ্লিষ্ট মান বের করে আনতে। পাঠকের পরবর্তী () পদ্ধতি উপাদান থেকে উপাদান আগাম করতে ব্যবহৃত হয়।

একজনTLVReader বস্তুর সবসময় সামনে পারেন স্থান হয়, অথবা পরে TLV উপাদান। প্রথম সক্রিয়া, একটিTLVReader এনকোডিং প্রথম উপাদানের পূর্বে অবিলম্বে অবস্থিত। পড়া আরম্ভ করার জন্য, একটি আবেদন ইনিশিয়াল কল করতে হবে পরবর্তী () প্রথম উপাদান পাঠক জায়গায় স্থাপনের জন্য পদ্ধতি। যখন একটি ধারক উপাদান encounteredeither একটি গঠন, একটি অ্যারের বা paththe হয় OpenContainer () বা EnterContainer () পদ্ধতি ধারক বিষয়বস্তু মাধ্যমে পুনরুক্তি করতে ব্যবহার করা যাবে।

পাঠক একটি শেষে ছুঁয়েছে TLV এনকোডিং, অথবা একটি ধারক মধ্যে শেষ উপাদান, তা থেকে একটি WEAVE_END_OF_TLV ত্রুটি ফিরে আবেদন সংকেত পরবর্তী () পদ্ধতি। পাঠক হওয়া পর্যন্ত reinitialized হয় WEAVE_END_OF_TLV আসতে অব্যাহত থাকবে, অথবা বর্তমান ধারক থেকে প্রস্থান করা হয় (মাধ্যমে CloseContainer () / ExitContainer () )।

একজনTLVReader বস্তুর একটি নির্দিষ্ট ইনপুট বাফার থেকে অথবা এক বা একাধিক PacketBuffers একটা চেন থেকে সরাসরি তথ্য বিশ্লেষণ করতে পারেন। উপরন্তু, অ্যাপ্লিকেশন একটি সরবরাহ করতে পারে GetNextBuffer একটি অবাধ উৎস, যেমন একটি সকেট বা সিরিয়াল পোর্ট থেকে পাঠকে ফিড ডেটাতে ফাংশন।

উত্তরাধিকার

প্রত্যক্ষ জ্ঞাত সাবক্লাস:
  এনএল :: ওয়েভ :: প্রোফাইল :: ডেটা ম্যানেজমেন্ট_ক্রেনস :: সার্কুলারএভেন্টরিডার
  nl :: তাঁত :: টিএলভি :: বিজ্ঞপ্তি টিএলভিআরেডার

পাবলিক প্রকার

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-বিট স্বাক্ষরযুক্ত পূর্ণসংখ্যার হিসাবে বর্তমান উপাদানটির মান পান the
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
এটি একটি ব্যক্তিগত পদ্ধতি যা এমকন্ট্রোলবাইটি থেকে টিএলভিএলেমেন্ট টাইপ দেয়।
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 যে কোনও সময় একটি অ্যাপ্লিকেশন দ্বারা সেট করা যেতে পারে, তবে পাঠক আরম্ভ করা হয় সাধারণত সেট করা হয়।

একটি getNextBuffer ফাংশন বাস্তবায়নের জন্য অতিরিক্ত তথ্যের জন্য getNextBufferFunct প্রকারের সংজ্ঞাটি দেখুন।

ইমপ্লিকেটপ্রোফাইলআইডি

uint32_t ImplicitProfileId

অন্তর্নিহিত ফর্মটিতে এনকোড করা প্রোফাইল ট্যাগগুলির জন্য ব্যবহৃত প্রোফাইল আইডি।

পাঠক একটি প্রোফাইল-নির্দিষ্ট ট্যাগ যা অন্তর্নিহিত আকারে এনকোড করা হয়েছে encounters, তখন তা এর মান ব্যবহার ImplicitProfileId ট্যাগের জন্য অধিকৃত প্রফাইল ID এর মতো সম্পত্তি।

ডিফল্টরূপে, 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

mLenRead

uint32_t mLenRead

এমম্যাক্সলেন

uint32_t mMaxLen

mReadPoint

const uint8_t * mReadPoint

পাবলিক ফাংশন

ক্লোজকন্টেইনার

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 () ফাংশন। কেবল তখনই সম্ভব যখন গেটনেক্সটবার বা নন-নুল হয়।

ডুপবাইটস

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

বর্তমান বাইট বা UTF8 স্ট্রিংয়ের মান সমেত একটি বাফার বরাদ্দ করে এবং প্রদান করে।

এই পদ্ধতিটি বর্তমান অবস্থানে বাইট বা ইউটিএফ -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
যদি লক্ষ্য প্ল্যাটফর্মটি ম্যালোক () এবং বিনামূল্যে () সমর্থন করে না।
other
অন্যান্য বুনা বা প্ল্যাটফর্ম ত্রুটি কোডের কনফিগার দ্বারা ফিরে GetNextBuffer () ফাংশন। কেবল তখনই সম্ভব যখন গেটনেক্সটবার বা নন-নুল হয়।

ডুপস্ট্রিং

WEAVE_ERROR DupString(
  char *& buf
)

বর্তমান বাইট বা UTF8 স্ট্রিংয়ের নাল-টার্মিনেটেড মান সমেত একটি বাফার বরাদ্দ করে এবং প্রদান করে।

এই পদ্ধতিটি বর্তমান অবস্থানে বাইট বা ইউটিএফ -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
যদি লক্ষ্য প্ল্যাটফর্মটি ম্যালোক () এবং বিনামূল্যে () সমর্থন করে না।
other
অন্যান্য বুনা বা প্ল্যাটফর্ম ত্রুটি কোডের কনফিগার দ্বারা ফিরে GetNextBuffer () ফাংশন। কেবল তখনই সম্ভব যখন গেটনেক্সটবার বা নন-নুল হয়।

এন্টারকন্টেইনার

WEAVE_ERROR EnterContainer(
  TLVType & outerContainerType
)

একটি দেয়ঃTLVReader সদস্যদের পড়ার জন্য বস্তু TLV ধারক উপাদান।

EnterContainer () পদ্ধতি বর্তমান দেয়ঃTLVReader বস্তুর একটি সদস্য উপাদান পড়া শুরু করার TLV ধারক (ক গঠন, বিন্যাস বা পথ)। প্রতি কলের জন্য EnterContainer () অ্যাপ্লিকেশনের জন্য একটি সংশ্লিষ্ট কল করতে হবে ExitContainer ()

যখন EnterContainer () বলা হয়TLVReader বস্তুর ধারক উপাদান স্থান করা আবশ্যক পড়তে হবে। পদ্ধতিটি টিএলভিটাইপ মানটির একটি রেফারেন্স হিসাবে বিবেচনা করে যা কনটেইনারটি পড়ার সময় পাঠকের প্রসঙ্গ সংরক্ষণ করতে ব্যবহৃত হবে।

যখন EnterContainer () পদ্ধতি আয়, পাঠক ধারক প্রথম সদস্য সামনে অবিলম্বে অবস্থিত। বারবার আহ্বান পরবর্তী () সংগ্রহ সদস্যদের মাধ্যমে পাঠক আগাম থাকবে যতক্ষন না শেষ, উপনিত যে সময়ে আপনার পাঠক WEAVE_END_OF_TLV ফিরে আসবে।

একবার আবেদন একটি ধারক পড়া সমাপ্ত হয়েছে এটা কল করে ধারক পর উপাদানের পড়া চালিয়ে যেতে পারেন ExitContainer () পদ্ধতি।

বিশদ
পরামিতি
[out] outerContainerType
একটি টিএলভিটাইপ মানটির একটি উল্লেখ যা পাঠকের প্রসঙ্গটি গ্রহণ করবে।
রিটার্ন মান
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 () ফাংশন। কেবল তখনই সম্ভব যখন গেটনেক্সটবার বা নন-নুল হয়।

পাওয়া

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-বিট স্বাক্ষরযুক্ত পূর্ণসংখ্যার হিসাবে বর্তমান উপাদানটির মান পান the

যদি এনকোডযুক্ত পূর্ণসংখ্যা মান আউটপুট ডেটা টাইপের চেয়ে বড় হয় তবে ফলাফল মানটি কেটে যাবে। একইভাবে, যদি এনকোডড পূর্ণসংখ্যা মানটি নেতিবাচক হয় তবে মানটি স্বাক্ষরবিহীন রূপান্তরিত হবে।

বিশদ
পরামিতি
[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 ফ্লোটিং পয়েন্ট প্রকার, বা পাঠক একটি উপাদান উপর স্থান নয়।

গেটবুফহ্যান্ডল

uintptr_t GetBufHandle(
  void
) const 

গেটবাইটস

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 () ফাংশন। কেবল তখনই সম্ভব যখন গেটনেক্সটবার বা নন-নুল হয়।

গেটকন্টেইনার টাইপ

TLVType GetContainerType(
  void
) const 

ধারক যার মধ্যে ধরণ ফেরত পাঠায়TLVReader বর্তমানে পড়া হয়।

GetContainerType () পদ্ধতি ধরণ ফেরৎ TLV ধারক যার মধ্যেTLVReader পড়া হয়। তাহলেTLVReader একটি বাইরের-পূর্বের পর্যায়ে অবস্থান করে TLV এনকোডিং (অর্থাত আগে, বা বাইরের-পূর্বের পর TLV উপাদান), পদ্ধতি kTLVType_NotSpecified ফিরে আসবে।

বিশদ
ফিরে আসে
বর্তমান ধারক এর TLVType, অথবা kTLVType_NotSpecified যদিTLVReader একটি ধারক মধ্যে স্থান নয়।

গেটকন্ট্রোলবাইট

uint16_t GetControlByte(
  void
) const 

বর্তমান যুক্ত নিয়ন্ত্রণ বাইট ফেরত পাঠায় TLV উপাদান।

আদর্শভাবে, কেউ কখনো নিয়ন্ত্রণ বাইট সম্পর্কে জানতে প্রয়োজন এবং একমাত্র অভ্যন্তরীণ বাস্তবায়ন TLV এটিতে অ্যাক্সেস থাকতে হবে। কিন্তু তা সত্ত্বেও, নিয়ন্ত্রণ বাইট ব্যবহার করতে পারছে দ্বারা ডিবাগ করার উদ্দেশ্যে জন্য সহায়ক TLV ডিবাগ উপযোগিতা (যে ব্যবহার করে দেখুন ট্যাগ নিয়ন্ত্রণ বাইট ডিকোড করতে যখন প্রশংসনীয় মুদ্রণ TLV বিষয়বস্তু বাফার)।

বিশদ
ফিরে আসে
একটি স্বাক্ষরবিহীন পূর্ণসংখ্যা বর্তমান যুক্ত নিয়ন্ত্রণ বাইট ধারণকারী TLV উপাদান। যদি পাঠক একটি উপাদান উপর স্থান নয় kTLVControlByte_NotSpecified ফিরিয়ে দেওয়া হয়।

গেটডেটাপিটার

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 () ফাংশন। কেবল তখনই সম্ভব যখন গেটনেক্সটবার বা নন-নুল হয়।

GetLength

uint32_t GetLength(
  void
) const 

বর্তমান সাথে সংশ্লিষ্ট ডেটার দৈর্ঘ্য ফেরত পাঠায় TLV উপাদান।

ডেটা দৈর্ঘ্য কেবলমাত্র ইউটিএফ 8 স্ট্রিং বা বাইট স্ট্রিংয়ের উপাদানগুলিতে প্রযোজ্য। ইউটিএফ 8 স্ট্রিংয়ের জন্য, প্রাপ্ত মানটি স্ট্রিংয়ের বাইট সংখ্যা, অক্ষরের সংখ্যা নয়।

বিশদ
ফিরে আসে
দৈর্ঘ্য (বাইটে) বর্তমান সাথে সংশ্লিষ্ট ডেটার TLV উপাদান অথবা 0 যদি বর্তমান উপাদান একটি UTF8 হওয়া স্ট্রিং বা বাইট স্ট্রিং নয়, অথবা পাঠক একটি উপাদান উপর স্থান না হয়।

GetLengthRead

uint32_t GetLengthRead(
  void
) const 

পাঠক সূচনা হওয়ার পরে থেকে পঠিত মোট বাইটের সংখ্যা ফিরে আসে।

বিশদ
ফিরে আসে
পাঠক আরম্ভ হওয়ার পরে মোট মোট বাইট সংখ্যা।

গেটআরডপয়েন্ট

const uint8_t * GetReadPoint(
  void
) const 

অন্তর্নিহিত ইনপুট বাফারে পয়েন্টটি পাওয়া যায় যা পাঠকের বর্তমান অবস্থানের সাথে মিলে যায়।

বিশদ
ফিরে আসে
অন্তর্নিহিত ইনপুট বাফারে একটি পয়েন্টার যা পাঠকের বর্তমান অবস্থানের সাথে মিলে যায়।

GetRemainingLength

uint32_t GetRemainingLength(
  void
) const 

সর্বাধিক পঠনের দৈর্ঘ্য না পৌঁছানো পর্যন্ত পঠনযোগ্য মোট বাইটের সংখ্যা প্রদান করে।

বিশদ
ফিরে আসে
সর্বাধিক পঠনের দৈর্ঘ্য না আসা পর্যন্ত পঠনযোগ্য মোট সংখ্যা।

গেটস্ট্রিং

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 () ফাংশন। কেবল তখনই সম্ভব যখন গেটনেক্সটবার বা নন-নুল হয়।

গেটটাগ

uint64_t GetTag(
  void
) const 

বর্তমান যুক্ত ট্যাগ ফেরত পাঠায় TLV উপাদান।

দ্বারা ফিরে মান GetTag () ট্যাগ ইউটিলিটি ফাংশন সঙ্গে ব্যবহার করা যেতে পারে ( IsProfileTag () , IsContextTag () , ProfileIdFromTag () ইত্যাদি) ট্যাগের ধরনের নির্ধারণ করতে এবং বিভিন্ন ট্যাগ ক্ষেত্র মান বের করে আনতে।

বিশদ
ফিরে আসে
একটি স্বাক্ষরবিহীন পূর্ণসংখ্যা বর্তমান যুক্ত ট্যাগ সম্পর্কে তথ্য ধারণকারী TLV উপাদান।

গেটটাইপ

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 থেকে পড়তে অবজেক্ট।

পার্সিং বাফারের প্রারম্ভিক অবস্থানে (বুফ-> ডেটাস্টার্ট ()) থেকে শুরু হয় এবং বাফারের ডেটা শেষ না হওয়া অবধি অব্যাহত থাকে (বুফ-> ডেটালেন () দ্বারা বর্ণিত), বা ম্যাক্সলেন বাইটগুলি পার্স করা হয়নি।

বিশদ
পরামিতি
[in] buf
একটি PacketBuffer একটি পয়েন্টার ধারণকারী TLV ডেটা বিশ্লেষণ হতে।
[in] maxLen
পার্স করার জন্য সর্বাধিক বাইট। ইনপুট বাফারে ডেটা পরিমাণে ডিফল্ট।

এটা

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

একটি সূচনাTLVReader একটি এক বা একাধিক PacketBuffers থেকে পড়তে অবজেক্ট।

প্রাথমিক বাফারের শুরু অবস্থান (বুফ-> ডেটাস্টার্ট ()) এ পার্সিং শুরু হয়। তাহলে allowDiscontiguousBuffers সত্য, পাঠক তাদের দ্বারা সংযুক্ত বাফার চেইন অব ধরে এগিয়ে করবে পরবর্তী () পয়েন্টার। বাফার শৃঙ্খলে থাকা সমস্ত ডেটা গ্রাস না হওয়া অবধি পার্সিং অব্যাহত থাকে (বুফ-> ডেটালেন () দ্বারা চিহ্নিত) বা ম্যাক্সলেন বাইটগুলি পার্স না করা পর্যন্ত।

বিশদ
পরামিতি
[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 () ফাংশন। কেবল তখনই সম্ভব যখন গেটনেক্সটবার বা নন-নুল হয়।

পরবর্তী

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 () ফাংশন। কেবল তখনই সম্ভব যখন গেটনেক্সটবার বা নন-নুল হয়।

ওপেনকন্টেইনার

WEAVE_ERROR OpenContainer(
  TLVReader & containerReader
)

একটি নতুন সূচনাTLVReader একটি সদস্য পড়ার জন্য বস্তু TLV ধারক উপাদান।

OpenContainer () পদ্ধতি একটি নতুন সূচনাTLVReader একটি সদস্য উপাদানের পড়ার জন্য বস্তু TLV ধারক (ক গঠন, বিন্যাস বা পথ)। যখন OpenContainer () বলা হয়, বর্তমানTLVReader বস্তুর ধারক উপাদান স্থান করা আবশ্যক পড়তে হবে। পদ্ধতিটি তার একমাত্র যুক্তি হিসাবে একটি নতুন পাঠকের রেফারেন্স হিসাবে গ্রহণ করে যা ধারকটি পড়তে শুরু করা হবে। এই পাঠক ধারক পাঠক হিসাবে পরিচিত সময় পাঠক যার উপর হয় OpenContainer () বলা হয় পিতা বা মাতা পাঠক হিসাবে পরিচিত হয়।

যখন OpenContainer () পদ্ধতি আয়, ধারক পাঠক ধারক প্রথম সদস্য সামনে অবিলম্বে অবস্থিত। কল করা হচ্ছে পরবর্তী () ধারক পাঠক শেষ না হওয়া পর্যন্ত সংগ্রহ সদস্যদের ধরে এগিয়ে হবে পৌঁছেছেন হয়, যা এ নির্দেশ পাঠক WEAVE_END_OF_TLV ফিরে আসবে।

কনটেইনার রিডারটি উন্মুক্ত থাকা অবস্থায়, অ্যাপ্লিকেশনগুলিকে অবশ্যই কল করা বা অন্যথায় পিতামাতার পাঠকের অবস্থার পরিবর্তন করা উচিত নয়। একবার একটি অ্যাপ্লিকেশন ধারক রিডার ব্যবহার সমাপ্ত হয়েছে এটা কল করে এটি বন্ধ করতে হবে CloseContainer () , পিতা বা মাতা পাঠক উপর একটি আর্গুমেন্ট হিসাবে ধারক পাঠক ক্ষণস্থায়ী। অ্যাপ্লিকেশনগুলি অন্তর্নিহিত ধারকটিতে থাকা সমস্ত উপাদানগুলি সহ বা পড়া ছাড়াই যে কোনও সময়ে ধারক পাঠককে বন্ধ করতে পারে। ধারক পাঠক বন্ধ হয়ে যাওয়ার পরে, অ্যাপ্লিকেশনগুলি পিতাম পাঠকের তাদের ব্যবহার চালিয়ে যেতে পারে।

ধারক পাঠক পিতামাতা পাঠকের কাছ থেকে বিভিন্ন কনফিগারেশন বৈশিষ্ট্য উত্তরাধিকার সূত্রে পান। এইগুলো:

  • অন্তর্নিহিত প্রোফাইল আইডি (ইমপ্লিকেটপ্রোফাইলআইডি)
  • অ্যাপ্লিকেশন ডেটা পয়েন্টার (AppData)
  • GetNextBuffer ফাংশন পয়েন্টার

বিশদ
পরামিতি
[out] containerReader
একটি একটি রেফারেন্সTLVReader বস্তু বর্তমান ধারক উপাদান সদস্যদের পড়ার জন্য সক্রিয়া করা হবে না। সরবরাহিত বস্তুর সাথে সম্পর্কিত যে কোনও ডেটা ওভাররাইট করা হয় ten
রিটার্ন মান
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 () ফাংশন। কেবল তখনই সম্ভব যখন গেটনেক্সটবার বা নন-নুল হয়।

যাচাই করুন

WEAVE_ERROR VerifyEndOfContainer(
  void
)

যাচাই TVLReader বস্তুর একটি শেষে যে TLV ধারক।

VerifyEndOfContainer () পদ্ধতি যাচাই সেখানে আর কোনো আছে TLV উপাদান বর্তমান মধ্যে পড়তে হবে TLV ধারক। এই সুবিধার পদ্ধতি যা কলিং সমতূল্য হয় পরবর্তী () এবং WEAVE_END_OF_TLV একটি ফেরত মান পরীক্ষা করার।

বিশদ
রিটার্ন মান
WEAVE_NO_ERROR
যদি কোন আরও আছে TLV উপাদান পড়তে হবে।
WEAVE_ERROR_UNEXPECTED_TLV_ELEMENT
অন্য তাহলে TLV উপাদান সংগ্রহে পাওয়া যায়নি।
WEAVE_ERROR_TLV_UNDERRUN
অন্তর্নিহিত তাহলে TLV অকালে শেষ হয়ে এনকোডিং।
WEAVE_ERROR_INVALID_TLV_ELEMENT
পাঠক একটি অবৈধ বা অসমর্থিত সম্মুখীন তাহলে TLV উপাদান প্রকার।
WEAVE_ERROR_INVALID_TLV_TAG
পাঠক একটি সম্মুখীন হলে TLV একটি অবৈধ প্রেক্ষাপটে ট্যাগ।
other
অন্যান্য বুনা বা প্ল্যাটফর্ম ত্রুটি কোডের কনফিগার দ্বারা ফিরে GetNextBuffer () ফাংশন। কেবল তখনই সম্ভব যখন গেটনেক্সটবার বা নন-নুল হয়।

সুরক্ষিত ফাংশন

ক্লিয়ারলেমেন্টস্টেট

void ClearElementState(
  void
)

রাজ্যের সাফTLVReader

এই পদ্ধতি প্রথম সামনে পাঠক জায়গায় স্থাপনের জন্য ব্যবহার করা হয় TLV TLVs মধ্যে অথবা শেষ করার পর, TLV

এলিমেন্টটাইপ

TLVElementType ElementType(
  void
) const 

এটি একটি ব্যক্তিগত পদ্ধতি যা এমকন্ট্রোলবাইটি থেকে টিএলভিএলেমেন্টটাইপ দেয়।

এনএসিউরডাটা

WEAVE_ERROR EnsureData(
  WEAVE_ERROR noDataErr
)

GetElementHeadLength

WEAVE_ERROR GetElementHeadLength(
  uint8_t & elemHeadBytes
) const 

এটি একটি ব্যক্তিগত পদ্ধতি দৈর্ঘ্য গনা ব্যবহার করে তা হল TLV উপাদান মাথা।

ইসকন্টেইনারওপেন

bool IsContainerOpen(
  void
) const 

রিডটাটা

WEAVE_ERROR ReadData(
  uint8_t *buf,
  uint32_t len
)

পঠন উপাদান

WEAVE_ERROR ReadElement(
  void
)

রিডট্যাগ

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

সেটকন্টেইনার ওপেন

void SetContainerOpen(
  bool aContainerOpen
)

স্কিপডাটা

WEAVE_ERROR SkipData(
  void
)

বর্তমান অন্তর্ভুক্ত কোনো ডেটা ছেড়ে TLV একটি গন্তব্য বাফার ছাড়া এটি উপর পড়ে।

বিশদ
রিটার্ন মান
WEAVE_NO_ERROR
পাঠকের সাফল্যের সাথে ডেটার শেষে অবস্থান করা হত।
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
)

স্ট্যাটিক ফাংশন সুরক্ষিত

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
)