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
mSendLinks
otLinkedBuffer otTcpCircularSendBuffer::mSendLinks[2]
mStartIndex
size_t otTcpCircularSendBuffer::mStartIndex
ดัชนีของไบต์แรกที่ถูกต้องในบัฟเฟอร์ที่ส่ง
แหล่งข้อมูล
หัวข้ออ้างอิง API ของ OpenThread จะมาจากซอร์สโค้ดซึ่งพร้อมใช้งานใน GitHub ดูข้อมูลเพิ่มเติมหรือมีส่วนร่วมในเอกสารประกอบของเราได้ที่แหล่งข้อมูล