otTcpCircularSendBuffer

#include <tcp_ext.h>

Stellt einen zirkulären Sendepuffer zur Verwendung mit einem TCP-Endpunkt dar.

Zusammenfassung

Die Verwendung eines zirkulären Sendepuffers ist optional. Anwendungen können einen TCP-Endpunkt zum Senden von Daten verwenden, indem otLinkedBuffers direkt verwaltet wird. Für einige Anwendungen ist jedoch ein zirkulärer Sendepuffer möglicherweise praktischer. Solche Anwendungen können otTcpCircularSendBufferWrite() aufrufen, um einen zirkulären Sendepuffer an einen TCP-Endpunkt anzuhängen und Daten an diesen TCP-Endpunkt zu senden. Dabei wird der zirkuläre Sendepuffer zur Verwaltung der zugrunde liegenden otLinkedBuffers genutzt.

otTcpCircularSendBuffer wird zusätzlich zur auf otLinkedBuffer basierenden API implementiert, die von einem otTcpEndpoint bereitgestellt wird. Nach der Verknüpfung mit einem otTcpEndpoint übernimmt ein otTcpCircularSendBuffer die gesamte Verwaltung von otLinkedBuffers für die Verbindung. Wenn also ein otTcpCircularSendBuffer an einen otTcpEndpoint angehängt wurde, sollte die Anwendung otTcpSendByReference() oder otTcpSendByExtension() für diesen otTcpEndpoint nicht mehr aufrufen. Stattdessen sollte die Anwendung otTcpCircularSendBufferWrite() verwenden, um Daten in den Sendepuffer aufzunehmen.

Anhand des Callbacks otTcpForwardProgress() können Nutzer erfahren, wenn im zirkulären Sendepuffer Speicherplatz frei wird. Auf einem otTcpEndpoint, an den ein otTcpCircularSendBuffer angehängt ist, MUSS die Anwendung einen otTcpForwardProgress()-Callback installieren und otTcpCircularSendBufferHandleForwardProgress() für den angehängten otTcpCircularSendBuffer zu Beginn der Rückruffunktion aufrufen. Der Nutzer sollte NICHT einen otTcpSendDone()-Callback installieren, da die gesamte Verwaltung von otLinkedBuffers über den zirkulären Sendepuffer abgewickelt wird.

Die Anwendung sollte die Felder dieser Struktur nicht direkt prüfen, sondern nur über die TCP Circular Send Buffer API-Funktionen mit ihr interagieren, deren Signatur in dieser Datei bereitgestellt wird.

Öffentliche Attribute

mCapacity
size_t
Länge des kreisförmigen Sendepuffers.
mCapacityUsed
size_t
Anzahl der im Sendepuffer gespeicherten Byte.
mDataBuffer
uint8_t *
Zeiger auf Daten im kreisförmigen Sendepuffer.
mFirstSendLinkIndex
uint8_t
mSendLinks[2]
mStartIndex
size_t
Index des ersten gültigen Bytes im Sendepuffer.

Öffentliche Attribute

mCapacity

size_t otTcpCircularSendBuffer::mCapacity

Länge des kreisförmigen Sendepuffers.

mCapacityUsed

size_t otTcpCircularSendBuffer::mCapacityUsed

Anzahl der im Sendepuffer gespeicherten Byte.

mDataBuffer

uint8_t * otTcpCircularSendBuffer::mDataBuffer

Zeiger auf Daten im kreisförmigen Sendepuffer.

mFirstSendLinkIndex

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

mStartIndex

size_t otTcpCircularSendBuffer::mStartIndex

Index des ersten gültigen Bytes im Sendepuffer.

Ressourcen

OpenThread API-Referenzthemen stammen aus dem Quellcode, der auf GitHub verfügbar ist. Weitere Informationen finden Sie unter Ressourcen. Dort können Sie auch einen Beitrag zu unserer Dokumentation leisten.