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