nl:: Weave:: TLV:: WeaveCircularTLVBuffer
#include <src/lib/core/WeaveCircularTLVBuffer.h>
WeaveCircularTLVBuffer चैनल, nl::Weave::TLV::TLVWriter और nl::Weave::TLVTLVReader डिवाइस के लिए सर्कुलर स्टोरेज देता है.
खास जानकारी
nl::Weave::TLV::TLVWriter चैनल के पास WeaveCircularTLVBuffer में, बिना सीमा के TLV एंट्री सेव करने की सुविधा होती है. ऐसा तब तक किया जा सकता है, जब तक हर TLV एंट्री, दिए गए स्टोरेज में पूरी तरह फ़िट हो जाती है. nl::Weave::TLV::TLVReader फ़ंक्शन, बफ़र के साइज़ के हिसाब से पढ़ा जाएगा, लेकिन बफ़र के अंदर रैपर को भी अडजस्ट करेगा.
कंस्ट्रक्टर और डिस्ट्रक्टर |
|
---|---|
WeaveCircularTLVBuffer(uint8_t *inBuffer, size_t inBufferLength)
WeaveCircularTLVBuffer कंस्ट्रक्टर.
|
|
WeaveCircularTLVBuffer(uint8_t *inBuffer, size_t inBufferLength, uint8_t *inHead)
WeaveCircularTLVBuffer कंस्ट्रक्टर.
|
सार्वजनिक टाइप |
|
---|---|
ProcessEvictedElementFunct)(WeaveCircularTLVBuffer &inBuffer, void *inAppData, TLVReader &inReader)
|
WEAVE_ERROR(*) ऐसा फ़ंक्शन जिसे nl::Weave::TLV::WeaveCircularTLVBuffer से हटाए जाने से पहले TLV एलिमेंट को प्रोसेस करने के लिए कहा जाता है. |
सार्वजनिक एट्रिब्यूट |
|
---|---|
mAppData
|
void *
हटाए गए एलिमेंट को प्रोसेस करने वाले कॉलबैक के साथ इस्तेमाल करने के लिए, उपयोगकर्ता की ओर से दिया गया संदर्भ ज़रूरी नहीं है.
|
mImplicitProfileId
|
uint32_t
|
mProcessEvictedElement
|
एलिमेंट को सर्कुलर बफ़र से हटाने से पहले, उसे प्रोसेस करने वाला कॉलबैक का इस्तेमाल उपयोगकर्ता की ओर से किया जाता है. हालांकि, यह ज़रूरी नहीं है.
|
सार्वजनिक फ़ंक्शन |
|
---|---|
AvailableDataLength(void) const
|
size_t
|
DataLength(void) const
|
size_t
|
EvictHead(void)
|
WeaveCircularTLVBuffer के सबसे पुराने टॉप लेवल टीएलवी एलिमेंट को निकालता है.
|
FinalizeBuffer(TLVWriter & ioWriter, uint8_t *inBufStart, uint32_t inBufLen)
|
TLVWriter से आउटपुट पूरा होने पर, FinalizeBuffer
WeaveCircularTLVBuffer की स्थिति को अडजस्ट करता है. |
GetNewBuffer(TLVWriter & ioWriter, uint8_t *& outBufStart, uint32_t & outBufLen)
|
TLVWriter के लिए ज़्यादा स्टोरेज पाएं.
|
GetNextBuffer(TLVReader & ioReader, const uint8_t *& outBufStart, uint32_t & outBufLen)
|
TLVReader फ़ंक्शन के लिए, ज़्यादा स्टोरेज पाएं.
|
GetQueue(void) const
|
uint8_t *
|
GetQueueSize(void) const
|
size_t
|
QueueHead(void) const
|
uint8_t *
|
QueueTail(void) const
|
uint8_t *
|
SetQueueHead(uint8_t *aQueueHead)
|
void
|
SetQueueLength(size_t aQueueLength)
|
void
|
सार्वजनिक स्टैटिक फ़ंक्शन |
|
---|---|
FinalizeBufferFunct(TLVWriter & ioWriter, uintptr_t inBufHandle, uint8_t *inBufStart, uint32_t inBufLen)
|
WeaveCircularTLVBuffer::फ़ाइनलाइज़Buffer के लिए एक ट्रैंपोलीन.
|
GetNewBufferFunct(TLVWriter & ioWriter, uintptr_t & inBufHandle, uint8_t *& outBufStart, uint32_t & outBufLen)
|
TLVWriter को ज़्यादा जगह देने के लिए ट्रैंपोलीन.
|
GetNextBufferFunct(TLVReader & ioReader, uintptr_t & inBufHandle, const uint8_t *& outBufStart, uint32_t & outBufLen)
|
WeaveCircularTLVBuffer::GetNextBuffer के लिए एक ट्रैंपोलिन.
|
सार्वजनिक टाइप
ProcessEvictedElementFunct
WEAVE_ERROR(* ProcessEvictedElementFunct)(WeaveCircularTLVBuffer &inBuffer, void *inAppData, TLVReader &inReader)
ऐसा फ़ंक्शन जिसे nl::Weave::TLV::WeaveCircularTLVBuffer से हटाए जाने से पहले TLV एलिमेंट को प्रोसेस करने के लिए कहा जाता है.
इस तरह के फ़ंक्शन का इस्तेमाल, ऐसे TLV एलिमेंट को प्रोसेस करने के लिए किया जाता है जिसे बफ़र से निकाला जाना है. इस फ़ंक्शन को, मिटाए जाने वाले एलिमेंट पर nl::Weave::TLV::TLVReader दिया जाएगा. साथ ही, अमान्य * कॉन्टेक्स्ट मिलेगा, जहां हो सकता है कि उपयोगकर्ता ने कॉलबैक के लिए अतिरिक्त एनवायरमेंट दिया हो. अगर फ़ंक्शन, एलिमेंट को प्रोसेस कर देता है, तो उसे WEAVE_NO_ERROR दिखना चाहिए. इससे WeaveCircularTLVBuffer को पता चलता है कि एलिमेंट को सुरक्षित तरीके से हटाया जा सकता है. किसी भी दूसरी रिटर्न वैल्यू को गड़बड़ी माना जाता है. यह WeaveCircularTLVBuffer को उस एलिमेंट को हटाने से रोक देगा जिस पर विचार किया जा रहा है.
ध्यान दें: इस कॉलबैक का इस्तेमाल, WeaveCircularTLVBuffer को एलिमेंट को हटाने के लिए न करने के लिए किया जा सकता है. यह कई स्थितियों में उपयोगी हो सकता है, जब यह इच्छा हो कि उसमें एक मौजूद सर्कुलर बफ़र हो, लेकिन उसके अंदर के किसी भी एलिमेंट को बदला न जाए.
जानकारी | |||||||
---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||
रिटर्न वैल्यू |
|
सार्वजनिक एट्रिब्यूट
mAppData
void * mAppData
हटाए गए एलिमेंट को प्रोसेस करने वाले कॉलबैक के साथ इस्तेमाल करने के लिए, उपयोगकर्ता की ओर से दिया गया संदर्भ ज़रूरी नहीं है.
mImplicitProfileId
uint32_t mImplicitProfileId
mProcessEvictedElement
ProcessEvictedElementFunct mProcessEvictedElement
एलिमेंट को सर्कुलर बफ़र से हटाने से पहले, उसे प्रोसेस करने वाला कॉलबैक का इस्तेमाल उपयोगकर्ता की ओर से किया जाता है. हालांकि, यह ज़रूरी नहीं है.
mProcessEvictedElement फ़ंक्शन को लागू करने के बारे में ज़्यादा जानकारी के लिए, processEvictedElementFuct टाइप की परिभाषा देखें.
सार्वजनिक फ़ंक्शन
AvailableDataLength
size_t AvailableDataLength( void ) const
DataLength
size_t DataLength( void ) const
EvictHead
WEAVE_ERROR EvictHead( void )
WeaveCircularTLVBuffer के सबसे पुराने टॉप लेवल टीएलवी एलिमेंट को निकालता है.
यह फ़ंक्शन, बफ़र में सबसे पुराने टॉप लेवल TLV एलिमेंट को हटा देता है. एलिमेंट को हटाने से पहले, उसे प्रोसेस करने के लिए फ़ंक्शन, mProcessEvictedElement पर रजिस्टर किए गए कॉलबैक को कॉल करेगा. अगर कॉलबैक WEAVE_NO_ERROR के अलावा कुछ भी लौटाता है, तो एलिमेंट हटाया नहीं जाता. इसी तरह, अगर बफ़र में कोई दूसरी गड़बड़ी नहीं होती और कोई दूसरी गड़बड़ी होती है, तो WeaveCircularTLVBuffer में कोई बदलाव नहीं किया जाता.
जानकारी | |||||
---|---|---|---|---|---|
रिटर्न वैल्यू |
|
FinalizeBuffer
WEAVE_ERROR FinalizeBuffer( TLVWriter & ioWriter, uint8_t *inBufStart, uint32_t inBufLen )
TLVWriter से आउटपुट पूरा होने पर, FinalizeBuffer WeaveCircularTLVBuffer
की स्थिति को अडजस्ट करता है.
यह फ़ंक्शन, क्यू टेल की पोज़िशन पर असर डालता है.
जानकारी | |||||||
---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||
रिटर्न वैल्यू |
|
GetNewBuffer
WEAVE_ERROR GetNewBuffer( TLVWriter & ioWriter, uint8_t *& outBufStart, uint32_t & outBufLen )
TLVWriter के लिए ज़्यादा स्टोरेज पाएं.
असल में, फ़ंक्शन सर्कुलर बफ़र से किसी एलिमेंट को निकालता है और इस बफ़र सूची के हेड को अडजस्ट करता है
जानकारी | |||||||
---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||
रिटर्न वैल्यू |
|
GetNextBuffer
WEAVE_ERROR GetNextBuffer( TLVReader & ioReader, const uint8_t *& outBufStart, uint32_t & outBufLen )
TLVReader फ़ंक्शन के लिए, ज़्यादा स्टोरेज पाएं.
WeaveCircularTLVBuffer से मिलने वाला स्टोरेज, बफ़र में रैप हो सकता है. यह फ़ंक्शन हमें सर्कुलर बफ़र की बफ़रिंग को TLVReader कंस्ट्रेंट से मैच करने की सुविधा देता है. पाठक, बफ़र से ज़्यादा से ज़्यादा mQueueSize
बाइट डेटा पढ़ेगा.
जानकारी | |||||||
---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||
रिटर्न वैल्यू |
|
GetQueue
uint8_t * GetQueue( void ) const
GetQueueSize
size_t GetQueueSize( void ) const
QueueHead
uint8_t * QueueHead( void ) const
QueueTail
uint8_t * QueueTail( void ) const
SetQueueHead
void SetQueueHead( uint8_t *aQueueHead )
SetQueueLength
void SetQueueLength( size_t aQueueLength )
WeaveCircularTLVBuffer
WeaveCircularTLVBuffer( uint8_t *inBuffer, size_t inBufferLength )
WeaveCircularTLVBuffer कंस्ट्रक्टर.
जानकारी | |||||
---|---|---|---|---|---|
पैरामीटर |
|
WeaveCircularTLVBuffer
WeaveCircularTLVBuffer( uint8_t *inBuffer, size_t inBufferLength, uint8_t *inHead )
WeaveCircularTLVBuffer कंस्ट्रक्टर.
जानकारी | |||||||
---|---|---|---|---|---|---|---|
पैरामीटर |
|
सार्वजनिक स्टैटिक फ़ंक्शन
FinalizeBufferFunct
WEAVE_ERROR FinalizeBufferFunct( TLVWriter & ioWriter, uintptr_t inBufHandle, uint8_t *inBufStart, uint32_t inBufLen )
WeaveCircularTLVBuffer::फ़ाइनलाइज़Buffer के लिए एक ट्रैंपोलीन.
जानकारी | |||||||||
---|---|---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||||
रिटर्न वैल्यू |
|
GetNewBufferFunct
WEAVE_ERROR GetNewBufferFunct( TLVWriter & ioWriter, uintptr_t & inBufHandle, uint8_t *& outBufStart, uint32_t & outBufLen )
TLVWriter को ज़्यादा जगह देने के लिए ट्रैंपोलीन.
जानकारी | |||||||||
---|---|---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||||
रिटर्न वैल्यू |
|
GetNextBufferFunct
WEAVE_ERROR GetNextBufferFunct( TLVReader & ioReader, uintptr_t & inBufHandle, const uint8_t *& outBufStart, uint32_t & outBufLen )
WeaveCircularTLVBuffer::GetNextBuffer के लिए एक ट्रैंपोलिन.
जानकारी | |||||||||
---|---|---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||||
रिटर्न वैल्यू |
|