otTcpCircularSendBuffer

#include <tcp_ext.h>

Representa um buffer de envio circular para uso com um endpoint TCP.

Resumo

O uso de um buffer de envio circular é opcional. Os aplicativos podem usar um endpoint TCP para enviar dados gerenciando otLinkedBuffers diretamente. No entanto, alguns aplicativos podem achar mais conveniente ter um buffer de envio circular. Esses aplicativos podem chamar otTcpCircularSendBufferWrite() para "anexar" um buffer de envio circular a um endpoint TCP e enviar dados nesse endpoint TCP, contando com o buffer de envio circular para gerenciar os otLinkedBuffers subjacentes.

O otTcpCircularSendBuffer é implementado com base na API baseada em otLinkedBuffer fornecida por um otTcpEndpoint. Depois de anexado a um otTcpEndpoint, um otTcpCircularSendBuffer executa todo o trabalho de gerenciamento de otLinkedBuffers para a conexão. Isso significa que, quando um otTcpCircularSendBuffer estiver anexado a um otTcpEndpoint, o aplicativo não poderá chamar otTcpSendByReference() ou otTcpSendByExtension() nesse otTcpEndpoint. Em vez disso, o aplicativo precisa usar otTcpCircularSendBufferWrite() para adicionar dados ao buffer de envio.

O callback otTcpForwardProgress() é a forma que os usuários usam para saber quando há espaço disponível no buffer de envio circular. Em um otTcpEndpoint a que um otTcpCircularSendBuffer está anexado, o aplicativo PRECISA instalar um callback otTcpForwardProgress() e chamar otTcpCircularSendBufferHandleForwardProgress() no otTcpCircularSendBuffer anexado no início da função de callback. É recomendável que o usuário NÃO instale um callback otTcpSendDone(), porque todo o gerenciamento de otLinkedBuffers é feito pelo buffer de envio circular.

O aplicativo não deve inspecionar diretamente os campos dessa estrutura; ele só deve interagir com ela por meio das funções da API TCP Circular Enviar Buffer cuja assinatura é fornecida neste arquivo.

Atributos públicos

mCapacity
size_t
Comprimento do buffer de envio circular.
mCapacityUsed
size_t
Número de bytes armazenados no buffer de envio.
mDataBuffer
uint8_t *
Ponteiro para dados no buffer de envio circular.
mFirstSendLinkIndex
uint8_t
mSendLinks[2]
mStartIndex
size_t
Índice do primeiro byte válido no buffer de envio.

Atributos públicos

mCapacity

size_t otTcpCircularSendBuffer::mCapacity

Comprimento do buffer de envio circular.

mCapacityUsed

size_t otTcpCircularSendBuffer::mCapacityUsed

Número de bytes armazenados no buffer de envio.

mDataBuffer

uint8_t * otTcpCircularSendBuffer::mDataBuffer

Ponteiro para dados no buffer de envio circular.

mFirstSendLinkIndex

uint8_t otTcpCircularSendBuffer::mFirstSendLinkIndex
otLinkedBuffer otTcpCircularSendBuffer::mSendLinks[2]

mStartIndex

size_t otTcpCircularSendBuffer::mStartIndex

Índice do primeiro byte válido no buffer de envio.

Recursos

Os tópicos de Referência da API OpenThread são originados do código-fonte, disponível no GitHub. Para mais informações ou para contribuir com nossa documentação, consulte Recursos.