nl:: Weave:: TLV:: WeaveCircularTLVBuffer
#include <src/lib/core/WeaveCircularTLVBuffer.h>
WeaveCircularTLVBuffer zapewnia okrągłą pamięć masową dla nl::Weave::TLV::TLVWriter i nl::Weave::TLVTLVReader.
Podsumowanie
nl::Weave::TLV::TLVWriter może zapisać nieograniczoną liczbę wpisów TLV w WeaveCircularTLVBuffer, o ile każdy pojedynczy wpis TLV mieści się w całości w udostępnionej pamięci. Instrukcja nl::Weave::TLV::TLVReader odczytuje maksymalny rozmiar bufora, ale umieszcza go w buforze.
Konstruktory i niszczyciele |
|
---|---|
WeaveCircularTLVBuffer(uint8_t *inBuffer, size_t inBufferLength)
Konstruktora WeaveCircularTLVBuffer.
|
|
WeaveCircularTLVBuffer(uint8_t *inBuffer, size_t inBufferLength, uint8_t *inHead)
Konstruktora WeaveCircularTLVBuffer.
|
Typy publiczne |
|
---|---|
ProcessEvictedElementFunct)(WeaveCircularTLVBuffer &inBuffer, void *inAppData, TLVReader &inReader)
|
WEAVE_ERROR(* Funkcja, która jest wywoływana do przetwarzania elementu TLV przed usunięciem go z elementu nl::Weave::TLV::WeaveCircularTLVBuffer. |
Atrybuty publiczne |
|
---|---|
mAppData
|
void *
Opcjonalny, dostarczony przez użytkownika kontekst, który ma być używany z wywołaniem zwrotnym podczas przetwarzania wykluczonego elementu.
|
mImplicitProfileId
|
uint32_t
|
mProcessEvictedElement
|
Opcjonalne, dostarczone przez użytkownika wywołanie zwrotne, które przetwarza element przed usunięciem go z okrągłego bufora.
|
Funkcje publiczne |
|
---|---|
AvailableDataLength(void) const
|
size_t
|
DataLength(void) const
|
size_t
|
EvictHead(void)
|
Usuwa najstarszy element TLV najwyższego poziomu w WeaveCircularTLVBuffer.
|
FinalizeBuffer(TLVWriter & ioWriter, uint8_t *inBufStart, uint32_t inBufLen)
|
FinalizeBuffer dostosowuje stan
WeaveCircularTLVBuffer po zakończeniu przetwarzania danych wyjściowych z TLVWriter. |
GetNewBuffer(TLVWriter & ioWriter, uint8_t *& outBufStart, uint32_t & outBufLen)
|
Zyskaj dodatkowe miejsce na TLVWriter.
|
GetNextBuffer(TLVReader & ioReader, const uint8_t *& outBufStart, uint32_t & outBufLen)
|
Zyskaj dodatkowe miejsce na 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
|
Publiczne funkcje statyczne |
|
---|---|
FinalizeBufferFunct(TLVWriter & ioWriter, uintptr_t inBufHandle, uint8_t *inBufStart, uint32_t inBufLen)
|
Zmieniono wartość WeaveCircularTLVBuffer::FinalizeBuffer.
|
GetNewBufferFunct(TLVWriter & ioWriter, uintptr_t & inBufHandle, uint8_t *& outBufStart, uint32_t & outBufLen)
|
Trampolina zapewniająca dodatkowe miejsce na TLVWriter.
|
GetNextBufferFunct(TLVReader & ioReader, uintptr_t & inBufHandle, const uint8_t *& outBufStart, uint32_t & outBufLen)
|
Aktywacja polecenia WeaveCircularTLVBuffer::GetNextBuffer.
|
Typy publiczne
ProcessEvictedElementFunct
WEAVE_ERROR(* ProcessEvictedElementFunct)(WeaveCircularTLVBuffer &inBuffer, void *inAppData, TLVReader &inReader)
Funkcja, która jest wywoływana do przetwarzania elementu TLV przed usunięciem go z elementu nl::Weave::TLV::WeaveCircularTLVBuffer.
Funkcje tego typu służą do przetwarzania elementu TLV, który ma zostać usunięty z bufora. Do funkcji zostanie nadany element nl::Weave::TLV::TLVReader umieszczony na elemencie, który ma zostać usunięty, oraz pusty kontekst * w miejscu, w którym użytkownik mógł podać dodatkowe środowisko dla wywołania zwrotnego. Jeśli funkcja przetworzyła element, musi zwrócić WEAVE_NO_ERROR ; wskazuje ona WeaveCircularTLVBuffer, że element można bezpiecznie usunąć. Każda inna zwracana wartość jest traktowana jako błąd i nie zapobiega usunięciu danego elementu przez WeaveCircularTLVBuffer.
Uwaga: to wywołanie zwrotne można użyć, aby wymusić usunięcie elementu przez WeaveCircularTLVBuffer. Może się to przydać w wielu sytuacjach, gdy chcesz utworzyć bazowy bufor kołowy, ale bez zastępowania żadnych zawartych w nim elementów.
Szczegóły | |||||||
---|---|---|---|---|---|---|---|
Parametry |
|
||||||
Zwracane wartości |
|
Atrybuty publiczne
mAppData
void * mAppData
Opcjonalny, dostarczony przez użytkownika kontekst, który ma być używany z wywołaniem zwrotnym podczas przetwarzania wykluczonego elementu.
mImplicitProfileId
uint32_t mImplicitProfileId
mProcessEvictedElement
ProcessEvictedElementFunct mProcessEvictedElement
Opcjonalne, dostarczone przez użytkownika wywołanie zwrotne, które przetwarza element przed usunięciem go z okrągłego bufora.
Dodatkowe informacje o implementowaniu funkcji mProcessEvictedElement znajdziesz w definicji typu ProcessEvictedElementFunct.
Funkcje publiczne
AvailableDataLength
size_t AvailableDataLength( void ) const
DataLength
size_t DataLength( void ) const
EvictHead
WEAVE_ERROR EvictHead( void )
Usuwa najstarszy element TLV najwyższego poziomu w WeaveCircularTLVBuffer.
Ta funkcja usuwa w buforze najstarszy element TLV najwyższego poziomu. Ta funkcja wywołuje wywołanie zwrotne zarejestrowane w mProcessEvictedElement, by przetworzyć element przed usunięciem. Jeśli wywołanie zwrotne zwróci wartość inną niż WEAVE_NO_ERROR, element nie zostanie usunięty. Podobnie, jeśli jakikolwiek inny błąd nie wystąpi w buforze lub bazowy element WeaveCircularTLVBuffer pozostanie niezmieniony.
Szczegóły | |||||
---|---|---|---|---|---|
Zwracane wartości |
|
FinalizeBuffer
WEAVE_ERROR FinalizeBuffer( TLVWriter & ioWriter, uint8_t *inBufStart, uint32_t inBufLen )
FinalizeBuffer dostosowuje stan WeaveCircularTLVBuffer
po zakończeniu przetwarzania danych wyjściowych z TLVWriter.
Ta funkcja wpływa na pozycję ogona kolejki.
Szczegóły | |||||||
---|---|---|---|---|---|---|---|
Parametry |
|
||||||
Zwracane wartości |
|
GetNewBuffer
WEAVE_ERROR GetNewBuffer( TLVWriter & ioWriter, uint8_t *& outBufStart, uint32_t & outBufLen )
Zyskaj dodatkowe miejsce na TLVWriter.
W rzeczywistości funkcja usuwa element z okrągłego bufora i dostosowuje początek kolejki.
Szczegóły | |||||||
---|---|---|---|---|---|---|---|
Parametry |
|
||||||
Zwracane wartości |
|
GetNextBuffer
WEAVE_ERROR GetNextBuffer( TLVReader & ioReader, const uint8_t *& outBufStart, uint32_t & outBufLen )
Zyskaj dodatkowe miejsce na TLVReader.
Pamięć udostępniana przez funkcję WeaveCircularTLVBuffer może być zawinięta w buforze. Ta funkcja pozwala dopasować buforowanie kołowe do ograniczeń TLVReader. Czytnik odczyta z bufora maksymalnie mQueueSize
bajty.
Szczegóły | |||||||
---|---|---|---|---|---|---|---|
Parametry |
|
||||||
Zwracane wartości |
|
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 )
Konstruktora WeaveCircularTLVBuffer.
Szczegóły | |||||
---|---|---|---|---|---|
Parametry |
|
WeaveCircularTLVBuffer
WeaveCircularTLVBuffer( uint8_t *inBuffer, size_t inBufferLength, uint8_t *inHead )
Konstruktora WeaveCircularTLVBuffer.
Szczegóły | |||||||
---|---|---|---|---|---|---|---|
Parametry |
|
Publiczne funkcje statyczne
FinalizeBufferFunct
WEAVE_ERROR FinalizeBufferFunct( TLVWriter & ioWriter, uintptr_t inBufHandle, uint8_t *inBufStart, uint32_t inBufLen )
Zmieniono wartość WeaveCircularTLVBuffer::FinalizeBuffer.
Szczegóły | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametry |
|
||||||||
Zwracane wartości |
|
GetNewBufferFunct
WEAVE_ERROR GetNewBufferFunct( TLVWriter & ioWriter, uintptr_t & inBufHandle, uint8_t *& outBufStart, uint32_t & outBufLen )
Trampolina zapewniająca dodatkowe miejsce na TLVWriter.
Szczegóły | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametry |
|
||||||||
Zwracane wartości |
|
GetNextBufferFunct
WEAVE_ERROR GetNextBufferFunct( TLVReader & ioReader, uintptr_t & inBufHandle, const uint8_t *& outBufStart, uint32_t & outBufLen )
Aktywacja polecenia WeaveCircularTLVBuffer::GetNextBuffer.
Szczegóły | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametry |
|
||||||||
Zwracane wartości |
|