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
mSendLinks
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.