otTcpCircularSendBuffer

#include <tcp_ext.h>

Rappresenta un buffer di invio circolare da utilizzare con un endpoint TCP.

Riepilogo

L'utilizzo di un buffer di invio circolare è facoltativo. Le applicazioni possono utilizzare un endpoint TCP per inviare i dati gestendo direttamente otLinkedBuffers. Tuttavia, alcune applicazioni potrebbero trovare più conveniente avere un buffer di invio circolare; tali applicazioni possono chiamare otTcpCircularSendBufferWrite() per "collegare" un buffer di invio circolare a un endpoint TCP e inviare dati su tale endpoint TCP, affidandosi al buffer di invio circolare per gestire i valori otLinkedBuffers sottostanti.

otTcpCircularSendBuffer viene implementato sulla parte superiore dell'API basata su otLinkedBuffer fornita da otTcpEndpoint. Una volta collegato a un otTcpEndpoint, un otTcpCircularSendBuffer esegue tutto il lavoro di gestione di otLinkedBuffers per la connessione. Ciò significa che, una volta che un otTcpCircularSendBuffer è collegato a un otTcpEndpoint, l'applicazione non deve chiamare otTcpSendByReference() o otTcpSendByExtension() su tale otTcpEndpoint. L'applicazione dovrebbe invece usare otTcpCircularSendBufferWrite() per aggiungere dati al buffer di invio.

Il callback otTcpForwardProgress() è il modo in cui gli utenti imparano quando diventa disponibile spazio nel buffer di invio circolare. Su un otTcpEndpoint a cui è collegato un otTcpCircularSendBuffer, l'applicazione DEVE installare un callback otTcpForwardProgress() e chiamare otTcpCircularSendBufferHandleForwardProgress() sull'otTcpCircularSendBuffer collegato all'inizio della funzione di callback. È consigliabile che l'utente NON installi un callback otTcpSendDone(), poiché tutta la gestione di otLinkedBuffers viene gestita dal buffer di invio circolare.

L'applicazione non deve ispezionare direttamente i campi di questa struttura; deve interagire con essa solo tramite le funzioni dell'API TCP Circular Send Buffer la cui firma è fornita in questo file.

Attributi pubblici

mCapacity
size_t
Lunghezza del buffer di invio circolare.
mCapacityUsed
size_t
Numero di byte memorizzati nel buffer di invio.
mDataBuffer
uint8_t *
Puntatore ai dati nel buffer di invio circolare.
mFirstSendLinkIndex
uint8_t
mSendLinks[2]
mStartIndex
size_t
Indice del primo byte valido nel buffer di invio.

Attributi pubblici

mCapacity

size_t otTcpCircularSendBuffer::mCapacity

Lunghezza del buffer di invio circolare.

mCapacityUsed

size_t otTcpCircularSendBuffer::mCapacityUsed

Numero di byte memorizzati nel buffer di invio.

mDataBuffer

uint8_t * otTcpCircularSendBuffer::mDataBuffer

Puntatore ai dati nel buffer di invio circolare.

mFirstSendLinkIndex

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

mStartIndex

size_t otTcpCircularSendBuffer::mStartIndex

Indice del primo byte valido nel buffer di invio.

Risorse

Gli argomenti di riferimento dell'API OpenThread provengono dal codice sorgente, disponibile su GitHub. Per saperne di più o per contribuire alla nostra documentazione, consulta la sezione Risorse.