nl:: Dokuma:: TLV:: DuygusalCircularTLVBuffer
#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, tek tek TLV girişi sağlanan depolama alanına sığdığı sürece WeaveCircularTLVBuffer'a sınırsız sayıda TLV girişi yazabilir. nl::Weave::TLV::TLVReader, tampon boyutunun en yüksek olanını okur, ancak arabellek içindeki sarmalama uygulanır.
İnşaat Ustaları ve Yıkıcılar |
|
---|---|
WeaveCircularTLVBuffer(uint8_t *inBuffer, size_t inBufferLength)
WeaveCircularTLVBuffer kurucu.
|
|
WeaveCircularTLVBuffer(uint8_t *inBuffer, size_t inBufferLength, uint8_t *inHead)
WeaveCircularTLVBuffer kurucu.
|
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şlemek için kullanılan işlev. |
Herkese açık özellikler |
|
---|---|
mAppData
|
void *
Çıkarılan öğeyi geri çağırma ile kullanılacak, kullanıcı tarafından sağlanan isteğe bağlı bir bağlam.
|
mImplicitProfileId
|
uint32_t
|
mProcessEvictedElement
|
Öğeyi dairesel arabelleğe almadan önce işleyen, kullanıcı tarafından sağlanan isteğe bağlı bir geri çağırma.
|
Herkese açık işlevler |
|
---|---|
AvailableDataLength(void) const
|
size_t
|
DataLength(void) const
|
size_t
|
EvictHead(void)
|
WeaveCircularTLVBuffer'da en eski üst düzey TLV öğesi yer alı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 alana sahip olun.
|
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 için trambolin.
|
GetNewBufferFunct(TLVWriter & ioWriter, uintptr_t & inBufHandle, uint8_t *& outBufStart, uint32_t & outBufLen)
|
TLVWriter için daha fazla alan sunmak üzere trambolin.
|
GetNextBufferFunct(TLVReader & ioReader, uintptr_t & inBufHandle, const uint8_t *& outBufStart, uint32_t & outBufLen)
|
WeaveCircularTLVBuffer::GetNextBuffer için trambolin.
|
Herkese açık türler
İşlemYürütülmüşÖğeFunct
WEAVE_ERROR(* ProcessEvictedElementFunct)(WeaveCircularTLVBuffer &inBuffer, void *inAppData, TLVReader &inReader)
Bir TLV öğesini nl::Weave::TLV::WeaveCircularTLVBuffer'dan çıkarılmadan önce işlemek için kullanılan işlev.
Bu tür işlevler, arabellekten çıkarılmak üzere olan bir TLV öğesini işlemek için kullanılır. Bu işleve, silinmek üzere olan öğeye yerleştirilmiş bir nl::Weave::TLV::TLVReader kodu verilir. Ayrıca, geri çağırma için kullanıcının ek ortam sağlamış olabileceği geçersiz * bağlam da gösterilir. İşlev, öğeyi başarıyla işlediyse WEAVE_NO_ERROR döndürmelidir. Bu, öğenin güvenli bir şekilde çıkarılabileceğini WeaveCircularTLVBuffer olarak belirtir. Diğer tüm iade değerleri hata olarak kabul edilir ve WeaveCircularTLVBuffer öğesinin, değerlendirilmekte olan öğeyi çıkarmasını önler.
Not: Bu geri çağırma, WeaveCircularTLVBuffer öğesinin öğeyi çıkarmamasını sağlamak için kullanılabilir. Bu, alttaki bir dairesel arabelleğe sahip olmak istendiğinde ancak içindeki hiçbir öğeyi geçersiz kılmak istemediğiniz birçok durumda yararlı olabilir.
Ayrıntılar | |||||||
---|---|---|---|---|---|---|---|
Parametreler |
|
||||||
İade Değerleri |
|
Herkese açık özellikler
mAppData
void * mAppData
Çıkarılan öğeyi geri çağırma ile kullanılacak, kullanıcı tarafından sağlanan isteğe bağlı bir bağlam.
mmplicitProfile Kimliği
uint32_t mImplicitProfileId
mProcessEvictedElement öğesi
ProcessEvictedElementFunct mProcessEvictedElement
Öğeyi dairesel 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.
Herkese açık işlevler
KullanılabilirVeri Uzunluğu
size_t AvailableDataLength( void ) const
VeriUzunluğu
size_t DataLength( void ) const
Kafatası
WEAVE_ERROR EvictHead( void )
WeaveCircularTLVBuffer'da en eski üst düzey TLV öğesi yer alır.
Bu işlev, arabellekteki en eski TLV öğesini kaldırır. İşlev, kaldırma işleminden önce öğeyi işlemek için mProcessEvictedElement'te kaydedilen 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, tampon içinde başka bir öğe oluşmazsa temel WeaveCircularTLVBuffer değişmeden kalır.
Ayrıntılar | |||||
---|---|---|---|---|---|
İade Değerleri |
|
Tampon Tamlama
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 |
|
||||||
İade Değerleri |
|
YeniArabelleğe Al
WEAVE_ERROR GetNewBuffer( TLVWriter & ioWriter, uint8_t *& outBufStart, uint32_t & outBufLen )
TLVWriter için ek alan edinin.
İşlev, aslında bir öğeyi dairesel arabellekten çıkarıp bu arabellek sırasının başlığını ayarlar
Ayrıntılar | |||||||
---|---|---|---|---|---|---|---|
Parametreler |
|
||||||
İade Değerleri |
|
SonrakiSonraki Arabelleği
WEAVE_ERROR GetNextBuffer( TLVReader & ioReader, const uint8_t *& outBufStart, uint32_t & outBufLen )
TLVReader için ek alana sahip olun.
WeaveCircularTLVBuffer tarafından sağlanan depolama alanı, arabelleğe alınabilir. Bu işlev, dairesel arabelleğin arabelleğinin TLVReader kısıtlamalarıyla eşleştirilebilmesini sağlar. Okuyucu, arabellekten en fazla mQueueSize
bayt okur.
Ayrıntılar | |||||||
---|---|---|---|---|---|---|---|
Parametreler |
|
||||||
İade Değerleri |
|
Git Kuyruğu
uint8_t * GetQueue( void ) const
GetQueueSize
size_t GetQueueSize( void ) const
Sıraya Alın
uint8_t * QueueHead( void ) const
Kuyruk
uint8_t * QueueTail( void ) const
SetQueueHead
void SetQueueHead( uint8_t *aQueueHead )
SetQueueLength
void SetQueueLength( size_t aQueueLength )
WeaveCircularTLV Arabellek
WeaveCircularTLVBuffer( uint8_t *inBuffer, size_t inBufferLength )
WeaveCircularTLVBuffer kurucu.
Ayrıntılar | |||||
---|---|---|---|---|---|
Parametreler |
|
WeaveCircularTLV Arabellek
WeaveCircularTLVBuffer( uint8_t *inBuffer, size_t inBufferLength, uint8_t *inHead )
WeaveCircularTLVBuffer kurucu.
Ayrıntılar | |||||||
---|---|---|---|---|---|---|---|
Parametreler |
|
Herkese açık statik işlevler
BufferFunct'ı tamamlayın
WEAVE_ERROR FinalizeBufferFunct( TLVWriter & ioWriter, uintptr_t inBufHandle, uint8_t *inBufStart, uint32_t inBufLen )
WeaveCircularTLVBuffer::FinalizeBuffer için trambolin.
Ayrıntılar | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametreler |
|
||||||||
İade Değerleri |
|
YeniBufferFunct Alma
WEAVE_ERROR GetNewBufferFunct( TLVWriter & ioWriter, uintptr_t & inBufHandle, uint8_t *& outBufStart, uint32_t & outBufLen )
TLVWriter için daha fazla alan sunmak üzere trambolin.
Ayrıntılar | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametreler |
|
||||||||
İade Değerleri |
|
GetNextBufferFunct
WEAVE_ERROR GetNextBufferFunct( TLVReader & ioReader, uintptr_t & inBufHandle, const uint8_t *& outBufStart, uint32_t & outBufLen )
WeaveCircularTLVBuffer::GetNextBuffer için trambolin.
Ayrıntılar | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametreler |
|
||||||||
İade Değerleri |
|