nl:: Weave:: TLV:: WeaveCircularTLVBuffer
#include <src/lib/core/WeaveCircularTLVBuffer.h>
WeaveCircularTLVBuffer, nl::Weave::TLV::TLVWriter ve nl::Weave::TLVTLVReader için dairesel depolama alanı sağlar.
Özet
nl::Weave::TLV::TLVWriter, her bir TLV girişi sağlanan depolama alanı içinde olduğu sürece WeaveCircularTLVBuffer'a sınırsız sayıda TLV girişi yazabilir. nl::Weave::TLV::TLVReader, en çok arabelleğin boyutunu okur ancak sarmalamayı arabelleğe alır.
Oluşturucular ve Yıkıcılar |
|
---|---|
WeaveCircularTLVBuffer(uint8_t *inBuffer, size_t inBufferLength)
WeaveCircularTLVBuffer oluşturucusu.
|
|
WeaveCircularTLVBuffer(uint8_t *inBuffer, size_t inBufferLength, uint8_t *inHead)
WeaveCircularTLVBuffer oluşturucusu.
|
Herkese açık türler |
|
---|---|
ProcessEvictedElementFunct)(WeaveCircularTLVBuffer &inBuffer, void *inAppData, TLVReader &inReader)
|
WEAVE_ERROR(* Bir TLV öğesini, nl::Weave::TLV::WeaveCircularTLVBuffer'dan çıkarılmadan önce işlemeye çağrılan işlev. |
Herkese açık özellikler |
|
---|---|
mAppData
|
void *
Çıkarılan öğeyi işleyen geri çağırmayla kullanılacak, kullanıcı tarafından sağlanan isteğe bağlı bir bağlam.
|
mImplicitProfileId
|
uint32_t
|
mProcessEvictedElement
|
Öğeyi dairesel arabellekten çıkarmadan önce işleyen, isteğe bağlı, kullanıcı tarafından sağlanan bir geri çağırma.
|
Herkese açık işlevler |
|
---|---|
AvailableDataLength(void) const
|
size_t
|
DataLength(void) const
|
size_t
|
EvictHead(void)
|
WeaveCircularTLVBuffer'daki en eski üst düzey TLV öğesini çıkarır.
|
FinalizeBuffer(TLVWriter & ioWriter, uint8_t *inBufStart, uint32_t inBufLen)
|
FinalizeBuffer, TLVWriter çıkışı tamamlandığında
WeaveCircularTLVBuffer durumunu ayarlar. |
GetNewBuffer(TLVWriter & ioWriter, uint8_t *& outBufStart, uint32_t & outBufLen)
|
TLVWriter için ek alan edinin.
|
GetNextBuffer(TLVReader & ioReader, const uint8_t *& outBufStart, uint32_t & outBufLen)
|
TLVReader için ek alan edinin.
|
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
|
Herkese açık statik işlevler |
|
---|---|
FinalizeBufferFunct(TLVWriter & ioWriter, uintptr_t inBufHandle, uint8_t *inBufStart, uint32_t inBufLen)
|
WeaveCircularTLVBuffer::FinalizeBuffer'a bir trambolin.
|
GetNewBufferFunct(TLVWriter & ioWriter, uintptr_t & inBufHandle, uint8_t *& outBufStart, uint32_t & outBufLen)
|
TLVWriter için daha fazla alan getiren bir trambolin.
|
GetNextBufferFunct(TLVReader & ioReader, uintptr_t & inBufHandle, const uint8_t *& outBufStart, uint32_t & outBufLen)
|
WeaveCircularTLVBuffer::GetNextBuffer öğesine bir trambolin.
|
Herkese açık türler
ProcessEvictedElementFunct
WEAVE_ERROR(* ProcessEvictedElementFunct)(WeaveCircularTLVBuffer &inBuffer, void *inAppData, TLVReader &inReader)
Bir TLV öğesini, nl::Weave::TLV::WeaveCircularTLVBuffer'dan çıkarılmadan önce işlemeye çağrılan işlev.
Bu tür işlevler, arabellekten çıkarılmak üzere olan TLV öğesini işlemek için kullanılır. İşleve, silinmek üzere olan öğeye konumlandırılmış bir nl::Weave::TLV::TLVReader ve kullanıcının geri çağırma için ek ortam sağlamış olabileceği void * bağlamı sağlanır. İşlev, öğeyi başarıyla işlediyse WEAVE_NO_ERROR değerini döndürmesi gerekir. bu, WeaveCircularTLVBuffer'a öğenin güvenli bir şekilde atılabileceği anlamına gelir. Diğer herhangi bir dönüş değeri hata olarak değerlendirilir ve WeaveCircularTLVBuffer'ın söz konusu öğeyi çıkarmasını engeller.
Not: Bu geri çağırma, WeaveCircularTLVBuffer'ı öğeyi çıkarmamaya zorlamak için kullanılabilir. Bu, arka planda dairesel bir tamponun bulunmasının istendiğinde, ancak içindeki herhangi bir öğenin geçersiz kılınmaması istendiğinde bazı durumlarda yararlı olabilir.
Ayrıntılar | |||||||
---|---|---|---|---|---|---|---|
Parametreler |
|
||||||
Değerleri Döndür |
|
Herkese açık özellikler
mAppData
void * mAppData
Çıkarılan öğeyi işleyen geri çağırmayla kullanılacak, kullanıcı tarafından sağlanan isteğe bağlı bir bağlam.
mImplicitProfileId
uint32_t mImplicitProfileId
mProcessEvictedElement
ProcessEvictedElementFunct mProcessEvictedElement
Öğeyi dairesel arabellekten çıkarmadan önce işleyen, isteğe bağlı, kullanıcı tarafından sağlanan bir geri çağırma.
mProcessEvictedElement işlevini uygulama hakkında daha fazla bilgi için ProcessEvictedElementFunct tür tanımına bakın.
Herkese açık işlevler
AvailableDataLength
size_t AvailableDataLength( void ) const
DataLength
size_t DataLength( void ) const
EvictHead
WEAVE_ERROR EvictHead( void )
WeaveCircularTLVBuffer'daki en eski üst düzey TLV öğesini çıkarır.
Bu işlev, arabellekteki en eski üst düzey TLV öğesini kaldırır. İşlev, öğeyi kaldırma işleminden önce işlemek için mProcessEvictedElement konumuna kaydedilen geri çağırmayı çağırır. Geri çağırma WEAVE_NO_ERROR dışında bir şey döndürürse öğe kaldırılmaz. Benzer şekilde, arabellekte başka bir hata oluşursa temel alınan WeaveCircularTLVBuffer aynı kalır.
Ayrıntılar | |||||
---|---|---|---|---|---|
Değerleri Döndür |
|
FinalizeBuffer
WEAVE_ERROR FinalizeBuffer( TLVWriter & ioWriter, uint8_t *inBufStart, uint32_t inBufLen )
FinalizeBuffer, TLVWriter çıkışı tamamlandığında WeaveCircularTLVBuffer
durumunu ayarlar.
Bu işlev, sıra kuyruğunun konumunu etkiler.
Ayrıntılar | |||||||
---|---|---|---|---|---|---|---|
Parametreler |
|
||||||
Değerleri Döndür |
|
GetNewBuffer
WEAVE_ERROR GetNewBuffer( TLVWriter & ioWriter, uint8_t *& outBufStart, uint32_t & outBufLen )
TLVWriter için ek alan edinin.
Aslında işlev, bir öğeyi dairesel arabellekten çıkarır ve bu arabellek sırasının başlığını ayarlar
Ayrıntılar | |||||||
---|---|---|---|---|---|---|---|
Parametreler |
|
||||||
Değerleri Döndür |
|
GetNextBuffer
WEAVE_ERROR GetNextBuffer( TLVReader & ioReader, const uint8_t *& outBufStart, uint32_t & outBufLen )
TLVReader için ek alan edinin.
WeaveCircularTLVBuffer tarafından sağlanan depolama alanı, arabelleğin içine sarılmış olabilir. Bu işlev, dairesel arabelleğin arabelleğe alınmasını TLVReader kısıtlamalarıyla eşleştirmemizi sağlar. Okuyucu, arabellekten en fazla mQueueSize
bayt okuyacak.
Ayrıntılar | |||||||
---|---|---|---|---|---|---|---|
Parametreler |
|
||||||
Değerleri Döndür |
|
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 oluşturucusu.
Ayrıntılar | |||||
---|---|---|---|---|---|
Parametreler |
|
WeaveCircularTLVBuffer
WeaveCircularTLVBuffer( uint8_t *inBuffer, size_t inBufferLength, uint8_t *inHead )
WeaveCircularTLVBuffer oluşturucusu.
Ayrıntılar | |||||||
---|---|---|---|---|---|---|---|
Parametreler |
|
Herkese açık statik işlevler
FinalizeBufferFunct
WEAVE_ERROR FinalizeBufferFunct( TLVWriter & ioWriter, uintptr_t inBufHandle, uint8_t *inBufStart, uint32_t inBufLen )
WeaveCircularTLVBuffer::FinalizeBuffer'a bir trambolin.
Ayrıntılar | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametreler |
|
||||||||
Değerleri Döndür |
|
GetNewBufferFunct
WEAVE_ERROR GetNewBufferFunct( TLVWriter & ioWriter, uintptr_t & inBufHandle, uint8_t *& outBufStart, uint32_t & outBufLen )
TLVWriter için daha fazla alan getiren bir trambolin.
Ayrıntılar | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametreler |
|
||||||||
Değerleri Döndür |
|
GetNextBufferFunct
WEAVE_ERROR GetNextBufferFunct( TLVReader & ioReader, uintptr_t & inBufHandle, const uint8_t *& outBufStart, uint32_t & outBufLen )
WeaveCircularTLVBuffer::GetNextBuffer öğesine bir trambolin.
Ayrıntılar | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametreler |
|
||||||||
Değerleri Döndür |
|