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 ทั้งหมดจะจัดการโดยบัฟเฟอร์ส่งแบบวงกลม

แอปพลิเคชันไม่ควรตรวจสอบช่องต่างๆ ของโครงสร้างนี้โดยตรง และควรโต้ตอบกับช่องผ่านฟังก์ชัน TCP Circular Send Buffer API ที่มีลายเซ็นอยู่ในไฟล์นี้เท่านั้น

แอตทริบิวต์สาธารณะ

mCapacity
size_t
ความยาวของบัฟเฟอร์การส่งแบบวงกลม
mCapacityUsed
size_t
จำนวนไบต์ที่เก็บไว้ในบัฟเฟอร์ที่ส่ง
mDataBuffer
uint8_t *
ตัวชี้ไปยังข้อมูลในบัฟเฟอร์ส่งแบบวงกลม
mFirstSendLinkIndex
uint8_t
mSendLinks[2]
mStartIndex
size_t
ดัชนีของไบต์แรกที่ถูกต้องในบัฟเฟอร์ที่ส่ง

แอตทริบิวต์สาธารณะ

mCapacity

size_t otTcpCircularSendBuffer::mCapacity

ความยาวของบัฟเฟอร์การส่งแบบวงกลม

mCapacityUsed

size_t otTcpCircularSendBuffer::mCapacityUsed

จำนวนไบต์ที่เก็บไว้ในบัฟเฟอร์ที่ส่ง

mDataBuffer

uint8_t * otTcpCircularSendBuffer::mDataBuffer

ตัวชี้ไปยังข้อมูลในบัฟเฟอร์ส่งแบบวงกลม

mFirstSendLinkIndex

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

mStartIndex

size_t otTcpCircularSendBuffer::mStartIndex

ดัชนีของไบต์แรกที่ถูกต้องในบัฟเฟอร์ที่ส่ง

แหล่งข้อมูล

หัวข้ออ้างอิง API ของ OpenThread จะมาจากซอร์สโค้ดซึ่งพร้อมใช้งานใน GitHub ดูข้อมูลเพิ่มเติมหรือมีส่วนร่วมในเอกสารประกอบของเราได้ที่แหล่งข้อมูล