nl :: Tecer:: TLV :: WeaveCircularTLVBuffer
#include <src/lib/core/WeaveCircularTLVBuffer.h>
WeaveCircularTLVBuffer fornece armazenamento circular para onl :: :: tecer TLV :: TLVWriter e nl :: :: tecer TLVTLVReader.
Resumo
nl :: Weave :: TLV :: TLVWriter é capaz de escrever um número ilimitado de TLV entradas para o WeaveCircularTLVBuffer contanto que cada indivíduo TLV fits entrada inteiramente dentro do armazenamento fornecido. Onl :: :: tecer TLV :: TLVReader vai ler no máximo o tamanho da memória intermédia, mas vai acomodar a envolvente dentro do tampão.
Construtores e Destruidores | |
---|---|
WeaveCircularTLVBuffer (uint8_t *inBuffer, size_t inBufferLength) WeaveCircularTLVBuffer construtor. | |
WeaveCircularTLVBuffer (uint8_t *inBuffer, size_t inBufferLength, uint8_t *inHead) WeaveCircularTLVBuffer construtor. |
Tipos públicos | |
---|---|
ProcessEvictedElementFunct )(WeaveCircularTLVBuffer &inBuffer, void *inAppData, TLVReader &inReader) | WEAVE_ERROR (*WEAVE_ERROR (* Uma função que é chamada para processar uma TLV elemento antes de ser removido do nl :: :: tecer TLV :: WeaveCircularTLVBuffer . |
Atributos públicos | |
---|---|
mAppData | void * Um contexto opcional fornecido pelo usuário a ser usado com o processamento de retorno de chamada do elemento removido. |
mImplicitProfileId | uint32_t |
mProcessEvictedElement | Um retorno de chamada opcional fornecido pelo usuário que processa o elemento antes de removê-lo do buffer circular. |
Funções públicas | |
---|---|
AvailableDataLength (void) const | size_t |
DataLength (void) const | size_t |
EvictHead (void) | Expulsa o mais antigo de nível superior TLV elemento na WeaveCircularTLVBuffer . |
FinalizeBuffer (TLVWriter & ioWriter, uint8_t *inBufStart, uint32_t inBufLen) | FinalizeBuffer ajustar o WeaveCircularTLVBuffer estado após a conclusão da produção doTLVWriter . |
GetNewBuffer (TLVWriter & ioWriter, uint8_t *& outBufStart, uint32_t & outBufLen) | Obter espaço adicional para oTLVWriter . |
GetNextBuffer (TLVReader & ioReader, const uint8_t *& outBufStart, uint32_t & outBufLen) | Obter espaço adicional para oTLVReader . |
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 |
Funções estáticas públicas | |
---|---|
FinalizeBufferFunct (TLVWriter & ioWriter, uintptr_t inBufHandle, uint8_t *inBufStart, uint32_t inBufLen) | Um trampolim para WeaveCircularTLVBuffer :: FinalizeBuffer . |
GetNewBufferFunct (TLVWriter & ioWriter, uintptr_t & inBufHandle, uint8_t *& outBufStart, uint32_t & outBufLen) | Um trampolim para buscar mais espaço para oTLVWriter . |
GetNextBufferFunct (TLVReader & ioReader, uintptr_t & inBufHandle, const uint8_t *& outBufStart, uint32_t & outBufLen) | Um trampolim para WeaveCircularTLVBuffer :: GetNextBuffer . |
Tipos públicos
ProcessEvictedElementFunct
WEAVE_ERROR(* ProcessEvictedElementFunct)(WeaveCircularTLVBuffer &inBuffer, void *inAppData, TLVReader &inReader)
Uma função que é chamada para processar uma TLV elemento antes de ser removido do nl :: :: tecer TLV :: WeaveCircularTLVBuffer .
Funções deste tipo são usados para processar um TLV elemento prestes a ser removido do tampão. A função será dada umanl :: :: tecer TLV :: TLVReader posicionado sobre o elemento prestes a ser suprimida, bem como contexto void * onde o utilizador pode ter fornecido ambiente adicional para a chamada de retorno. Se a função processado o elemento com sucesso, ele deve retornar WEAVE_NO_ERROR ; este significa para o WeaveCircularTLVBuffer que o elemento pode ser despejado de forma segura. Qualquer outro valor de retorno é tratada como um erro e irá impedir que o WeaveCircularTLVBuffer de desalojar o elemento em questão.
Nota: Este retorno pode ser usado para forçar WeaveCircularTLVBuffer para não expulsar o elemento. Isso pode ser útil em várias circunstâncias, quando se deseja ter um buffer circular subjacente, mas não sobrescrever quaisquer elementos dentro dele.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
| ||||||
Valores Retornados |
|
Atributos públicos
mAppData
void * mAppData
Um contexto opcional fornecido pelo usuário a ser usado com o processamento de retorno de chamada do elemento removido.
mImplicitProfileId
uint32_t mImplicitProfileId
mProcessEvictedElement
ProcessEvictedElementFunct mProcessEvictedElement
Um retorno de chamada opcional fornecido pelo usuário que processa o elemento antes de removê-lo do buffer circular.
Consulte a definição de tipo ProcessEvictedElementFunct para obter informações adicionais sobre a implementação da função mProcessEvictedElement.
Funções públicas
AvailableDataLength
size_t AvailableDataLength( void ) const
DataLength
size_t DataLength( void ) const
EvictHead
WEAVE_ERROR EvictHead( void )
Expulsa o mais antigo de nível superior TLV elemento na WeaveCircularTLVBuffer .
Esta função remove o mais antigo nível superior TLV elemento no buffer. A função vai ligar a chamada de retorno registados em mProcessEvictedElement para processar o elemento antes da remoção. Se o retorno de chamada retorna nada, mas WEAVE_NO_ERROR , o elemento não é removido. Do mesmo modo, se ocorrer qualquer outro erro não há elementos dentro do tampão, etc, o subjacente WeaveCircularTLVBuffer permanece inalterada.
Detalhes | |||||
---|---|---|---|---|---|
Valores Retornados |
|
FinalizeBuffer
WEAVE_ERROR FinalizeBuffer( TLVWriter & ioWriter, uint8_t *inBufStart, uint32_t inBufLen )
FinalizeBuffer ajustar o WeaveCircularTLVBuffer
estado após a conclusão da produção doTLVWriter .
Esta função afeta a posição da cauda da fila.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
| ||||||
Valores Retornados |
|
GetNewBuffer
WEAVE_ERROR GetNewBuffer( TLVWriter & ioWriter, uint8_t *& outBufStart, uint32_t & outBufLen )
Obter espaço adicional para oTLVWriter .
Na verdade, a função expulsa um elemento do buffer circular e ajusta a cabeça desta fila de buffer
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
| ||||||
Valores Retornados |
|
GetNextBuffer
WEAVE_ERROR GetNextBuffer( TLVReader & ioReader, const uint8_t *& outBufStart, uint32_t & outBufLen )
Obter espaço adicional para oTLVReader .
O armazenamento fornecida pelo WeaveCircularTLVBuffer pode ser wraparound dentro da memória tampão. Esta função proporciona-nos com uma capacidade de combinar o tamponamento do tampão circular para osTLVReader restrições. O leitor ler a maioria das mQueueSize
bytes do buffer.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
| ||||||
Valores Retornados |
|
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 construtor.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
WeaveCircularTLVBuffer
WeaveCircularTLVBuffer( uint8_t *inBuffer, size_t inBufferLength, uint8_t *inHead )
WeaveCircularTLVBuffer construtor.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
Funções estáticas públicas
FinalizeBufferFunct
WEAVE_ERROR FinalizeBufferFunct( TLVWriter & ioWriter, uintptr_t inBufHandle, uint8_t *inBufStart, uint32_t inBufLen )
Um trampolim para WeaveCircularTLVBuffer :: FinalizeBuffer .
Detalhes | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parâmetros |
| ||||||||
Valores Retornados |
|
GetNewBufferFunct
WEAVE_ERROR GetNewBufferFunct( TLVWriter & ioWriter, uintptr_t & inBufHandle, uint8_t *& outBufStart, uint32_t & outBufLen )
Um trampolim para buscar mais espaço para oTLVWriter .
Detalhes | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parâmetros |
| ||||||||
Valores Retornados |
|
GetNextBufferFunct
WEAVE_ERROR GetNextBufferFunct( TLVReader & ioReader, uintptr_t & inBufHandle, const uint8_t *& outBufStart, uint32_t & outBufLen )
Um trampolim para WeaveCircularTLVBuffer :: GetNextBuffer .
Detalhes | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parâmetros |
| ||||||||
Valores Retornados |
|