otTcpCircularSendBuffer

#include <tcp_ext.h>

Representa un búfer de envío circular para usar con un extremo de TCP.

Resumen

El uso de un búfer de envío circular es opcional. Las aplicaciones pueden usar un extremo TCP para enviar datos mediante la administración directa de otLinkedBuffers. Sin embargo, a algunas aplicaciones puede resultar más conveniente tener un búfer de envío circular. Esas aplicaciones pueden llamar a otTcpCircularSendBufferWrite() para "adjuntar" un búfer de envío circular a un extremo de TCP y enviar datos en ese extremo de TCP en función del búfer de envío circular para administrar el otLinkedBuffers subyacentes.

otTcpCircularSendBuffer se implementa sobre la API basada en otLinkedBuffer proporcionada por un otTcpEndpoint. Una vez que se conecta a un otTcpEndpoint, un otTcpCircularSendBuffer realiza todo el trabajo de administración de otLinkedBuffers para la conexión. Esto significa que, una vez que se adjunta un otTcpCircularSendBuffer a un otTcpEndpoint, la aplicación no debe llamar a otTcpSendByReference() ni a otTcpSendByExtension() en ese otTcpEndpoint. En su lugar, la aplicación debe usar otTcpCircularSendBufferWrite() para agregar datos al búfer de envío.

La devolución de llamada otTcpForwardProgress() es la manera prevista para que los usuarios sepan cuándo hay espacio disponible en el búfer de envío circular. En un otTcpEndpoint al que se adjunta un otTcpCircularSendBuffer, la aplicación DEBE instalar una devolución de llamada otTcpForwardProgress() y llamar a otTcpCircularSendBufferHandleForwardProgress() en el otTcpCircularSendBuffer adjunto al inicio de la función de devolución de llamada. Se recomienda que el usuario NO instale una devolución de llamada otTcpSendDone(), ya que toda la administración de otLinkedBuffers se controla a través del búfer de envío circular.

La aplicación no debe inspeccionar los campos de esta estructura directamente; solo debe interactuar con ella a través de las funciones de la API de TCP Circular Send Buffer cuya firma se proporciona en este archivo.

Atributos públicos

mCapacity
size_t
Longitud del búfer de envío circular.
mCapacityUsed
size_t
Cantidad de bytes almacenados en el búfer de envío.
mDataBuffer
uint8_t *
Es el puntero a los datos del búfer de envío circular.
mFirstSendLinkIndex
uint8_t
mSendLinks[2]
mStartIndex
size_t
Índice del primer byte válido en el búfer de envío.

Atributos públicos

mCapacity

size_t otTcpCircularSendBuffer::mCapacity

Longitud del búfer de envío circular.

mCapacityUsed

size_t otTcpCircularSendBuffer::mCapacityUsed

Cantidad de bytes almacenados en el búfer de envío.

mDataBuffer

uint8_t * otTcpCircularSendBuffer::mDataBuffer

Es el puntero a los datos del búfer de envío circular.

mFirstSendLinkIndex

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

mStartIndex

size_t otTcpCircularSendBuffer::mStartIndex

Índice del primer byte válido en el búfer de envío.

Recursos

Los temas de referencia de la API de OpenThread se originan a partir del código fuente, disponible en GitHub. Para obtener más información o contribuir a nuestra documentación, consulta Recursos.