otTcpCircularSendBuffer

#include <tcp_ext.h>

Представляет циклический буфер отправки для использования с конечной точкой TCP.

Краткое содержание

Использование циклического буфера отправки не является обязательным. Приложения могут использовать конечную точку TCP для отправки данных, напрямую управляя otLinkedBuffers. Однако некоторым приложениям может оказаться более удобным иметь циклический буфер отправки; такие приложения могут вызывать otTcpCircularSendBufferWrite() , чтобы «присоединить» циклический буфер отправки к конечной точке TCP и отправлять данные на эту конечную точку TCP, полагаясь на циклический буфер отправки для управления базовыми otLinkedBuffers.

otTcpCircularSendBuffer реализован поверх API на основе otLinkedBuffer, предоставляемого otTcpEndpoint . После присоединения к otTcpEndpoint otTcpCircularSendBuffer выполняет всю работу по управлению otLinkedBuffers для соединения. Это означает, что после присоединения otTcpCircularSendBuffer к otTcpEndpoint приложение не должно вызывать otTcpSendByReference() или otTcpSendByExtension() для этого otTcpEndpoint . Вместо этого приложение должно использовать otTcpCircularSendBufferWrite() для добавления данных в буфер отправки.

Обратный вызов otTcpForwardProgress() — это предназначенный для пользователей способ узнать, когда в циклическом буфере отправки появится свободное место. В точке otTcpEndpoint , к которой подключен otTcpCircularSendBuffer , приложение ДОЛЖНО установить обратный вызов otTcpForwardProgress() и вызвать otTcpCircularSendBufferHandleForwardProgress() для присоединенного otTcpCircularSendBuffer в начале функции обратного вызова. Пользователю НЕ рекомендуется устанавливать обратный вызов otTcpSendDone() , поскольку все управление otLinkedBuffers осуществляется циклическим буфером отправки.

Приложение не должно проверять поля этой структуры напрямую; он должен взаимодействовать с ним только через функции API TCP Circular Send Buffer, подпись которых представлена ​​в этом файле.

Публичные атрибуты

mCapacity
size_t
Длина циклического буфера отправки.
mCapacityUsed
size_t
Количество байтов, хранящихся в буфере отправки.
mDataBuffer
uint8_t *
Указатель на данные в циклическом буфере отправки.
mFirstSendLinkIndex
uint8_t
mSendLinks [2]
mStartIndex
size_t
Индекс первого допустимого байта в буфере отправки.

Публичные атрибуты

мЕмкость

size_t otTcpCircularSendBuffer::mCapacity

Длина циклического буфера отправки.

mCapacityUsed

size_t otTcpCircularSendBuffer::mCapacityUsed

Количество байтов, хранящихся в буфере отправки.

mDataBuffer

uint8_t * otTcpCircularSendBuffer::mDataBuffer

Указатель на данные в циклическом буфере отправки.

мфирстсендлинкиндекс

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

мстартиндекс

size_t otTcpCircularSendBuffer::mStartIndex

Индекс первого допустимого байта в буфере отправки.

Ресурсы

Справочные разделы API OpenThread взяты из исходного кода, доступного на GitHub . Для получения дополнительной информации или внесения вклада в нашу документацию обратитесь к Ресурсам .