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