O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

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 (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 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)
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 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
[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 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
WEAVE_NO_ERROR
Com sucesso.
other
Em qualquer outro erro retornado quer pelo retorno de chamada ou peloTLVReader .

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
[in,out] ioWriter
TLVWriter chamar essa função
[in] inBufStart
apontador para o início de dados (a partir de TLVWriter perspectiva)
[in] inBufLen
comprimento de dados na memória intermédia apontada por inbufStart
Valores Retornados
WEAVE_NO_ERROR
Incondicionalmente.

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
[in,out] ioWriter
TLVWriter chamar essa 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 elidir uma completa de nível superior TLV elemento.

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
[in] ioReader
TLVReader chamar 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
)

WeaveCircularTLVBuffer construtor.

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
)

WeaveCircularTLVBuffer construtor.

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 cair dentro do armazenamento de apoio para o tampão circular, ou seja, dentro 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 chamar essa função
[in,out] inBufHandle
Um identificador para o CircularTLVWriter objecto
[in] inBufStart
apontador para o início de dados (a partir de TLVWriter perspectiva)
[in] inBufLen
comprimento de dados na memória intermédia apontada 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 chamar essa função
[in,out] inBufHandle
Um identificador para o CircularTLVWriter objecto
[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 elidir uma completa de nível superior TLV elemento.

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 chamar essa função
[in,out] inBufHandle
Um identificador para o CircularTLVWriter objecto
[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.