O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.
Esta página foi traduzida pela API Cloud Translation.
Switch to English

nl :: Tecer:: TLV :: WeaveCircularTLVBuffer

#include <src/lib/core/WeaveCircularTLVBuffer.h>

WeaveCircularTLVBuffer fornece armazenamento circular paranl :: Weave :: TLV :: TLVWriter e nl :: Weave :: TLVTLVReader.

Resumo

nl :: Weave :: TLV :: TLVWriter é capaz de gravar um número ilimitado de entradas TLV no WeaveCircularTLVBuffer , desde que cada entrada TLV individual se ajuste inteiramente ao armazenamento fornecido. Onl :: Weave :: TLV :: TLVReader irá ler no máximo o tamanho do buffer, mas irá acomodar o wraparound dentro do buffer.

Construtores e Destruidores

WeaveCircularTLVBuffer (uint8_t *inBuffer, size_t inBufferLength)
WeaveCircularTLVBuffer (uint8_t *inBuffer, size_t inBufferLength, uint8_t *inHead)

Tipos públicos

ProcessEvictedElementFunct )(WeaveCircularTLVBuffer &inBuffer, void *inAppData, TLVReader &inReader) WEAVE_ERROR (*
Uma função que é chamada para processar um elemento TLV antes de ser removido do nl :: Weave :: 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 elemento TLV de nível superior mais antigo no WeaveCircularTLVBuffer .
FinalizeBuffer (TLVWriter & ioWriter, uint8_t *inBufStart, uint32_t inBufLen)
FinalizeBuffer ajusta o estado WeaveCircularTLVBuffer na conclusão da saída doTLVWriter .
GetNewBuffer (TLVWriter & ioWriter, uint8_t *& outBufStart, uint32_t & outBufLen)
Obtenha espaço adicional para oTLVWriter .
GetNextBuffer (TLVReader & ioReader, const uint8_t *& outBufStart, uint32_t & outBufLen)
Obtenha 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)
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)

Tipos públicos

ProcessEvictedElementFunct

WEAVE_ERROR(* ProcessEvictedElementFunct)(WeaveCircularTLVBuffer &inBuffer, void *inAppData, TLVReader &inReader)

Uma função que é chamada para processar um elemento TLV antes de ser removido do nl :: Weave :: TLV :: WeaveCircularTLVBuffer .

Funções desse tipo são usadas para processar um elemento TLV prestes a ser removido do buffer. A função receberá umnl :: Weave :: TLV :: TLVReader posicionado no elemento prestes a ser excluído, bem como um contexto void * onde o usuário pode ter fornecido um ambiente adicional para o retorno de chamada. Se a função processou o elemento com sucesso, ela deve retornar WEAVE_NO_ERROR ; isso significa para o WeaveCircularTLVBuffer que o elemento pode ser removido com segurança. Qualquer outro valor de retorno é tratado como um erro e impedirá que o WeaveCircularTLVBuffer remova o elemento em consideração.

Nota: Este retorno de chamada pode ser usado para forçar WeaveCircularTLVBuffer a não remover 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
[in] inBuffer
Uma referência ao buffer de onde ocorre o despejo
[in] inAppData
Um ponteiro para a estrutura fornecida pelo usuário contendo contexto adicional para este retorno de chamada
[in] inReader
UmTLVReader posicionado no elemento a ser despejado.
Valores Retornados
WEAVE_NO_ERROR
Com sucesso. O elemento será despejado.
other
Ocorreu um erro durante o processamento do evento. O elemento permanece no buffer. A função de gravação que acionou este despejo de elemento falhará.

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 elemento TLV de nível superior mais antigo no WeaveCircularTLVBuffer .

Esta função remove o elemento TLV de nível superior mais antigo do buffer. A função chamará o retorno de chamada registrado em mProcessEvictedElement para processar o elemento antes da remoção. Se o retorno de chamada retornar qualquer coisa, exceto WEAVE_NO_ERROR , o elemento não será removido. Da mesma forma, se qualquer outro erro ocorrer, nenhum elemento no buffer, etc., o WeaveCircularTLVBuffer subjacente permanecerá inalterado.

Detalhes
Valores Retornados
WEAVE_NO_ERROR
Com sucesso.
other
Em qualquer outro erro retornado pelo retorno de chamada ou peloTLVReader .

FinalizeBuffer

WEAVE_ERROR FinalizeBuffer(
  TLVWriter & ioWriter,
  uint8_t *inBufStart,
  uint32_t inBufLen
)

FinalizeBuffer ajusta o estado WeaveCircularTLVBuffer na conclusão da saída doTLVWriter .

Esta função afeta a posição da cauda da fila.

Detalhes
Parâmetros
[in,out] ioWriter
TLVWriter chamando esta função
[in] inBufStart
ponteiro para o início dos dados (da perspectiva TLVWriter )
[in] inBufLen
comprimento de dados no buffer apontado por inbufStart
Valores Retornados
WEAVE_NO_ERROR
Incondicionalmente.

GetNewBuffer

WEAVE_ERROR GetNewBuffer(
  TLVWriter & ioWriter,
  uint8_t *& outBufStart,
  uint32_t & outBufLen
)

Obtenha 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
[in,out] ioWriter
TLVWriter chamando esta função
[out] outBufStart
O ponteiro para o novo buffer
[out] outBufLen
O comprimento disponível para escrita
Valores Retornados
WEAVE_NO_ERROR
Com sucesso.
other
Se a função não foi capaz de eliminar um elemento TLV de nível superior completo.

GetNextBuffer

WEAVE_ERROR GetNextBuffer(
  TLVReader & ioReader,
  const uint8_t *& outBufStart,
  uint32_t & outBufLen
)

Obtenha espaço adicional para oTLVReader .

O armazenamento fornecido pelo WeaveCircularTLVBuffer pode ser delimitado pelo buffer. Essa função nos fornece a capacidade de combinar o armazenamento em buffer do buffer circular com as restrições doTLVReader . O leitor lerá no máximo bytes mQueueSize do buffer.

Detalhes
Parâmetros
[in] ioReader
TLVReader chamando esta função.
[in,out] outBufStart
A referência ao buffer de dados. No retorno, é definido como um valor dentro desse buffer.
[out] outBufLen
No retorno, defina o número de bytes contínuos que podem ser lidos do buffer.
Valores Retornados
WEAVE_NO_ERROR
É bem-sucedido incondicionalmente.

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
)

Construtor WeaveCircularTLVBuffer .

Detalhes
Parâmetros
[in] inBuffer
Um ponteiro para o armazenamento de apoio da fila
[in] inBufferLength
Comprimento, em bytes, do armazenamento de apoio

WeaveCircularTLVBuffer

 WeaveCircularTLVBuffer(
  uint8_t *inBuffer,
  size_t inBufferLength,
  uint8_t *inHead
)

Construtor WeaveCircularTLVBuffer .

Detalhes
Parâmetros
[in] inBuffer
Um ponteiro para o armazenamento de apoio da fila
[in] inBufferLength
Comprimento, em bytes, do armazenamento de apoio
[in] inHead
Ponto inicial para a cabeça. O ponteiro inHead deve estar dentro do armazenamento de apoio do buffer circular, ou seja, dentro de inBuffer e & ( inBuffer [ inBufferLength ])

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
[in,out] ioWriter
TLVWriter chamando esta função
[in,out] inBufHandle
Um identificador para o objeto CircularTLVWriter
[in] inBufStart
ponteiro para o início dos dados (da perspectiva TLVWriter )
[in] inBufLen
comprimento de dados no buffer apontado por inbufStart
Valores Retornados
WEAVE_NO_ERROR
Incondicionalmente.

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
[in,out] ioWriter
TLVWriter chamando esta função
[in,out] inBufHandle
Um identificador para o objeto CircularTLVWriter
[out] outBufStart
O ponteiro para o novo buffer
[out] outBufLen
O comprimento disponível para escrita
Valores Retornados
WEAVE_NO_ERROR
Com sucesso.
other
Se a função não foi capaz de eliminar um elemento TLV de nível superior completo.

GetNextBufferFunct

WEAVE_ERROR GetNextBufferFunct(
  TLVReader & ioReader,
  uintptr_t & inBufHandle,
  const uint8_t *& outBufStart,
  uint32_t & outBufLen
)

Um trampolim para WeaveCircularTLVBuffer :: GetNextBuffer .

Detalhes
Parâmetros
[in,out] ioReader
TLVReader chamando esta função
[in,out] inBufHandle
Um identificador para o objeto CircularTLVWriter
[in,out] outBufStart
A referência ao buffer de dados. No retorno, é definido como um valor dentro desse buffer.
[out] outBufLen
No retorno, defina o número de bytes contínuos que podem ser lidos do buffer.
Valores Retornados
WEAVE_NO_ERROR
É bem-sucedido incondicionalmente.