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 bağımsız TLV girişi sağlanan depolama alanına tamamen sığdığı sürece WeaveCircularTLVBuffer'a sınırsız sayıda TLV girişi yazabilir. nl::Weave::TLV::TLVReader, en fazla arabellek boyutunu okur ancak arabelleğin etrafını sarmalar.
Oluşturucular ve Yıkıcılar |
|
---|---|
WeaveCircularTLVBuffer(uint8_t *inBuffer, size_t inBufferLength)
WeaveCircularTLVBuffer oluşturucu.
|
|
WeaveCircularTLVBuffer(uint8_t *inBuffer, size_t inBufferLength, uint8_t *inHead)
WeaveCircularTLVBuffer oluşturucu.
|
Herkese açık türler |
|
---|---|
ProcessEvictedElementFunct)(WeaveCircularTLVBuffer &inBuffer, void *inAppData, TLVReader &inReader)
|
WEAVE_ERROR(* nl::Weave::TLV::WeaveCircularTLVBuffer'dan çıkarılmadan önce TLV öğesini işlemek için çağrılan işlev. |
Herkese açık özellikler |
|
---|---|
mAppData
|
void *
Çıkarılan öğeyi işleyen geri çağırma işleminde kullanılacak, kullanıcı tarafından sağlanan isteğe bağlı bir bağlam.
|
mImplicitProfileId
|
uint32_t
|
mProcessEvictedElement
|
Öğeyi döngüsel arabelleğe almadan önce işleyen, kullanıcı tarafından sağlanan isteğe bağlı bir geri çağırma.
|
Kamu işlevleri |
|
---|---|
AvailableDataLength(void) const
|
size_t
|
DataLength(void) const
|
size_t
|
EvictHead(void)
|
WeaveCircularTLVBuffer içindeki en eski üst düzey TLV öğesini çıkarır.
|
FinalizeBuffer(TLVWriter & ioWriter, uint8_t *inBufStart, uint32_t inBufLen)
|
FinalizeBuffer, TLVWriter'dan çıkış tamamlandığında
WeaveCircularTLVBuffer durumunu ayarlar. |
GetNewBuffer(TLVWriter & ioWriter, uint8_t *& outBufStart, uint32_t & outBufLen)
|
TLVWriter için ek alan alın.
|
GetNextBuffer(TLVReader & ioReader, const uint8_t *& outBufStart, uint32_t & outBufLen)
|
TLVReader için ek alan alın.
|
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 giden bir trambolin.
|
GetNewBufferFunct(TLVWriter & ioWriter, uintptr_t & inBufHandle, uint8_t *& outBufStart, uint32_t & outBufLen)
|
TLVWriter için daha fazla alan getirmek amacıyla bir trambolin.
|
GetNextBufferFunct(TLVReader & ioReader, uintptr_t & inBufHandle, const uint8_t *& outBufStart, uint32_t & outBufLen)
|
WeaveCircularTLVBuffer::GetNextBuffer konumuna giden bir trambolin.
|
Herkese açık türler
ProcessEvictedElementFunct
WEAVE_ERROR(* ProcessEvictedElementFunct)(WeaveCircularTLVBuffer &inBuffer, void *inAppData, TLVReader &inReader)
nl::Weave::TLV::WeaveCircularTLVBuffer'dan çıkarılmadan önce TLV öğesini işlemek için çağrılan işlev.
Bu tür işlevler, arabellekten çıkarılmak üzere olan bir 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ı verilir. İşlev öğeyi başarıyla işlediyse WEAVE_NO_ERROR değerini döndürmelidir. Bu, WeaveCircularTLVBuffer'a öğenin güvenli bir şekilde çıkarılabileceğini belirtir. Döndürülen diğer değerler 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, altında döngüsel bir tampon bulunmasının istendiği ancak içindeki herhangi bir öğenin geçersiz kılınmadığı bazı durumlarda yararlı olabilir.
Ayrıntılar | |||||||
---|---|---|---|---|---|---|---|
Parametreler |
|
||||||
Döndürülen Değerler |
|
Herkese açık özellikler
mAppData
void * mAppData
Çıkarılan öğeyi işleyen geri çağırma işleminde kullanılacak, kullanıcı tarafından sağlanan isteğe bağlı bir bağlam.
mImplicitProfileId
uint32_t mImplicitProfileId
mProcessEvictedElement
ProcessEvictedElementFunct mProcessEvictedElement
Öğeyi döngüsel arabelleğe almadan önce işleyen, kullanıcı tarafından sağlanan isteğe bağlı bir geri çağırma.
mProcessEvictedElement işlevinin uygulanmasıyla ilgili ek bilgiler için ProcessEvictedElementFunct türü tanımına bakın.
Kamu işlevleri
AvailableDataLength
size_t AvailableDataLength( void ) const
DataLength
size_t DataLength( void ) const
EvictHead
WEAVE_ERROR EvictHead( void )
WeaveCircularTLVBuffer içindeki en eski üst düzey TLV öğesini çıkarır.
Bu işlev, arabellekteki en eski üst düzey TLV öğesini kaldırır. İşlev, kaldırma işleminden önce öğeyi işlemek için mProcessEvictedElement öğesinde kayıtlı geri çağırmayı çağırır. Geri çağırma WEAVE_NO_ERROR dışında bir değer döndürürse öğe kaldırılmaz. Benzer şekilde, arabellek içinde başka herhangi bir hata oluşursa ve temel WeaveCircularTLVBuffer değişmez.
Ayrıntılar | |||||
---|---|---|---|---|---|
Döndürülen Değerler |
|
FinalizeBuffer
WEAVE_ERROR FinalizeBuffer( TLVWriter & ioWriter, uint8_t *inBufStart, uint32_t inBufLen )
FinalizeBuffer, TLVWriter'dan çıkış tamamlandığında WeaveCircularTLVBuffer
durumunu ayarlar.
Bu işlev, sıra kuyruğunun konumunu etkiler.
Ayrıntılar | |||||||
---|---|---|---|---|---|---|---|
Parametreler |
|
||||||
Döndürülen Değerler |
|
GetNewBuffer
WEAVE_ERROR GetNewBuffer( TLVWriter & ioWriter, uint8_t *& outBufStart, uint32_t & outBufLen )
TLVWriter için ek alan alın.
Aslında işlev, dairesel arabellekten bir öğe çıkarır ve bu arabellek sırasının başını ayarlar.
Ayrıntılar | |||||||
---|---|---|---|---|---|---|---|
Parametreler |
|
||||||
Döndürülen Değerler |
|
GetNextBuffer
WEAVE_ERROR GetNextBuffer( TLVReader & ioReader, const uint8_t *& outBufStart, uint32_t & outBufLen )
TLVReader için ek alan alın.
WeaveCircularTLVBuffer tarafından sağlanan depolama alanı, arabelleğin içine alınmış olabilir. Bu işlev, dairesel arabelleğin arabelleğe alınmasını TLVReader kısıtlamalarıyla eşleştirmemize olanak tanır. Okuyucu, arabellekten en fazla mQueueSize
bayt okur.
Ayrıntılar | |||||||
---|---|---|---|---|---|---|---|
Parametreler |
|
||||||
Döndürülen Değerler |
|
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şturucu.
Ayrıntılar | |||||
---|---|---|---|---|---|
Parametreler |
|
WeaveCircularTLVBuffer
WeaveCircularTLVBuffer( uint8_t *inBuffer, size_t inBufferLength, uint8_t *inHead )
WeaveCircularTLVBuffer oluşturucu.
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 giden bir trambolin.
Ayrıntılar | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametreler |
|
||||||||
Döndürülen Değerler |
|
GetNewBufferFunct
WEAVE_ERROR GetNewBufferFunct( TLVWriter & ioWriter, uintptr_t & inBufHandle, uint8_t *& outBufStart, uint32_t & outBufLen )
TLVWriter için daha fazla alan getirmek amacıyla bir trambolin.
Ayrıntılar | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametreler |
|
||||||||
Döndürülen Değerler |
|
GetNextBufferFunct
WEAVE_ERROR GetNextBufferFunct( TLVReader & ioReader, uintptr_t & inBufHandle, const uint8_t *& outBufStart, uint32_t & outBufLen )
WeaveCircularTLVBuffer::GetNextBuffer konumuna giden bir trambolin.
Ayrıntılar | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametreler |
|
||||||||
Döndürülen Değerler |
|