nl:: Weave:: Profiles:: BDX_Development
เนมสเปซนี้มีอินเทอร์เฟซทั้งหมดภายใน Weave สำหรับโปรไฟล์การโอนข้อมูลจำนวนมาก (BDX) ที่กำลังอยู่ระหว่างการพัฒนา และไม่ควรใช้สำหรับการใช้งานจริง
สรุป
การแจกแจง |
|
---|---|
@80
|
enum |
@81
|
enum |
@82
|
enum |
@83
|
enum |
Typedef |
|
---|---|
BdxClient
|
typedef |
BdxServer
|
typedef |
ErrorHandler)(BDXTransfer *aXfer, WEAVE_ERROR anErrorCode)
|
typedefvoid(*
ระบบจะเรียกเครื่องจัดการนี้ทุกครั้งที่พบข้อผิดพลาดของ Weave ซึ่งไม่สามารถแสดงผลโดยตรงผ่านรหัสข้อผิดพลาดไปยังขั้นตอนการควบคุมที่กำหนดโดยแอปพลิเคชันของผู้ใช้ |
GetBlockHandler)(BDXTransfer *aXfer, uint64_t *aLength, uint8_t **aDataBlock, bool *aLastBlock)
|
typedefvoid(*
Get a block of data to be transmitted. |
PutBlockHandler)(BDXTransfer *aXfer, uint64_t aLength, uint8_t *aDataBlock, bool aLastBlock)
|
typedefvoid(*
จัดการบล็อกของข้อมูลที่ระบุด้วย aDataBlock ความยาว aLength |
ReceiveAcceptHandler)(BDXTransfer *aXfer, ReceiveAccept *aReceiveAcceptMsg)
|
typedef จะมีการเรียกกลับเมื่อปลายทางยอมรับ ReceiveInit ที่ส่งไปก่อนหน้านี้ |
ReceiveInitHandler)(BDXTransfer *aXfer, ReceiveInit *aReceiveInitMsg)
|
typedefuint16_t(*
มีการเรียกกลับเมื่อได้รับข้อความ ReceiveInit |
RejectHandler)(BDXTransfer *aXfer, StatusReport *aReport)
|
typedefvoid(*
เรียกใช้เมื่อปลายทางปฏิเสธข้อความ Init ก่อนหน้านี้ |
SendAcceptHandler)(BDXTransfer *aXfer, SendAccept *aSendAcceptMsg)
|
typedef ระบบจะเรียกกลับเมื่อปลายทางยอมรับ SendInit ที่ส่งไปก่อนหน้านี้ |
SendInitHandler)(BDXTransfer *aXfer, SendInit *aSendInitMsg)
|
typedefuint16_t(*
มีการเรียกกลับเมื่อได้รับข้อความ SendInit |
XferDoneHandler)(BDXTransfer *aXfer)
|
typedefvoid(*
จัดการกรณีที่การโอนเสร็จสิ้นแล้ว |
XferErrorHandler)(BDXTransfer *aXfer, StatusReport *aXferError)
|
typedefvoid(*
จัดการข้อความ TransferError ที่ได้รับหรือส่งโดย BDX |
ฟังก์ชัน |
|
---|---|
GetBDXAckFlag(ExchangeContext *anEc)
|
uint16_t
GetBDXAckFlag จะแสดงแฟล็กที่เหมาะสมสำหรับช่อง RequestAck ตามการเชื่อมต่อของบริบท Exchange (ไม่มีคำขอ ack สำหรับ TCP) และอิงตามการรองรับเวลาคอมไพล์สำหรับ WRMP
|
โครงสร้าง |
|
---|---|
nl:: |
|
nl:: |
โครงสร้างนี้มีสมาชิกข้อมูลที่เป็นตัวแทนของการโอน BDX ที่ใช้งานอยู่ |
เนมสเปซ |
|
---|---|
nl:: |
การแจกแจง
@80
@80
@81
@81
@82
@82
@83
@83
Typedef
BdxClient
BdxNode BdxClient
BdxServer
BdxNode BdxServer
ErrorHandler
void(* ErrorHandler)(BDXTransfer *aXfer, WEAVE_ERROR anErrorCode)
ระบบจะเรียกเครื่องจัดการนี้ทุกครั้งที่พบข้อผิดพลาดของ Weave ซึ่งไม่สามารถแสดงผลโดยตรงผ่านรหัสข้อผิดพลาดไปยังขั้นตอนการควบคุมที่กำหนดโดยแอปพลิเคชันของผู้ใช้
กล่าวคือ หากข้อผิดพลาดเกิดขึ้นภายในเครื่องจัดการอื่นที่ลายเซ็นมีรูปแบบผลลัพธ์เป็นโมฆะ (เช่น เพื่อตอบสนองข้อความ Weave ที่เข้ามาหรือแม้แต่ส่งโดยโปรโตคอล) ระบบจะเรียกเครื่องจัดการนี้เพื่อให้ผู้ใช้สามารถพิจารณาว่าการถ่ายโอนสามารถกู้คืนและดำเนินการต่อได้หรือไม่ หรือควรเรียก Shutdown() โปรดทราบว่าอาจเกิดข้อผิดพลาดขึ้นก่อนที่จะมีการโอนออบเจ็กต์ BDXTransfer มากเกินไป (เช่น การโอน BDXTransfer ในกรณีดังกล่าว Weave จะบันทึกข้อผิดพลาดดังกล่าวและโปรโตคอลจะจัดการการล้างสถานะที่จําเป็นซึ่งจัดสรรไว้
รายละเอียด | |||||
---|---|---|---|---|---|
พารามิเตอร์ |
|
GetBlockHandler
void(* GetBlockHandler)(BDXTransfer *aXfer, uint64_t *aLength, uint8_t **aDataBlock, bool *aLastBlock)
Get a block of data to be transmitted.
ตัวเรียกใช้มีพื้นที่บัฟเฟอร์ (บัฟเฟอร์และความยาวของบัฟเฟอร์ซึ่งส่งผ่านโดยการอ้างอิง) Callee (แอปพลิเคชันผู้ใช้) ควรใช้บัฟเฟอร์ที่ให้ไว้ แต่ด้วยเหตุผลความเข้ากันได้แบบย้อนหลัง อาจแสดงบัฟเฟอร์ของตัวเอง Callee ต้องป้อนไม่เกิน aLength
ของไบต์ ในทางกลับกัน aLength
จะแสดงจำนวนไบต์จริงที่อ่านลงในบัฟเฟอร์
รายละเอียด | |||||||||
---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
PutBlockHandler
void(* PutBlockHandler)(BDXTransfer *aXfer, uint64_t aLength, uint8_t *aDataBlock, bool aLastBlock)
จัดการบล็อกของข้อมูลที่ระบุด้วย aDataBlock ความยาว aLength
ซึ่งอาจเกี่ยวข้องกับการเขียนข้อมูลลงในไฟล์และปิดไฟล์ดังกล่าวหาก isLastBlock เป็นจริง
รายละเอียด | |||||||||
---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
ReceiveAcceptHandler
WEAVE_ERROR(* ReceiveAcceptHandler)(BDXTransfer *aXfer, ReceiveAccept *aReceiveAcceptMsg)
จะมีการเรียกกลับเมื่อปลายทางยอมรับ ReceiveInit ที่ส่งไปก่อนหน้านี้
คุณสามารถใช้โอกาสนี้เพื่อเปิดไฟล์หรือจัดสรรทรัพยากรสำหรับการโอน หากคุณไม่ได้ดำเนินการดังกล่าวตั้งแต่เริ่มต้น
รายละเอียด | |||||
---|---|---|---|---|---|
พารามิเตอร์ |
|
ReceiveInitHandler
uint16_t(* ReceiveInitHandler)(BDXTransfer *aXfer, ReceiveInit *aReceiveInitMsg)
มีการเรียกกลับเมื่อได้รับข้อความ ReceiveInit
มีหน้าที่ระบุว่าคุณต้องการยอมรับส่วน "รับ" หรือไม่ และถ้าเป็นเช่นนั้น ให้ตั้งค่า aXfer->mIsaccept=true เพื่อให้โปรโตคอลส่งข้อความยอมรับไปยังผู้เริ่มต้น ออบเจ็กต์ BDXTransfer จะเริ่มต้นขึ้นตามการตั้งค่าเริ่มต้น บริเวณนี้เป็นที่ที่เหมาะสมในการแนบสถานะเฉพาะแอปพลิเคชัน (เช่น เปิดไฟล์แบบเปิด เป็นต้น) กับ aXfer->mAppState นอกจากนี้ คุณควรแนบตัวแฮนเดิลที่จำเป็น เช่น การจัดการบล็อกเข้ากับออบเจ็กต์ BDXTransfer ในจุดนี้ ถ้าพบรหัสข้อผิดพลาดอื่นที่ไม่ใช่ kStatus_Success จะถือว่าการโอนถูกปฏิเสธและโปรโตคอลจะจัดการการส่งข้อความปฏิเสธพร้อมรหัส
รายละเอียด | |||||
---|---|---|---|---|---|
พารามิเตอร์ |
|
RejectHandler
void(* RejectHandler)(BDXTransfer *aXfer, StatusReport *aReport)
เรียกใช้เมื่อปลายทางปฏิเสธข้อความ Init ก่อนหน้านี้
รายละเอียด | |||||
---|---|---|---|---|---|
พารามิเตอร์ |
|
SendAcceptHandler
WEAVE_ERROR(* SendAcceptHandler)(BDXTransfer *aXfer, SendAccept *aSendAcceptMsg)
ระบบจะเรียกกลับเมื่อปลายทางยอมรับ SendInit ที่ส่งไปก่อนหน้านี้
คุณสามารถใช้โอกาสนี้เพื่อเปิดไฟล์หรือจัดสรรทรัพยากรสำหรับการโอน หากคุณไม่ได้ดำเนินการดังกล่าวตั้งแต่เริ่มต้น
รายละเอียด | |||||
---|---|---|---|---|---|
พารามิเตอร์ |
|
SendInitHandler
uint16_t(* SendInitHandler)(BDXTransfer *aXfer, SendInit *aSendInitMsg)
มีการเรียกกลับเมื่อได้รับข้อความ SendInit
มีหน้าที่ระบุว่าคุณต้องการยอมรับ SendInit หรือไม่ และหากใช่ ให้ตั้งค่า aXfer->mIsaccept=true เพื่อให้โปรโตคอลส่งข้อความยอมรับไปยังผู้เริ่มต้น ออบเจ็กต์ BDXTransfer จะเริ่มต้นขึ้นตามการตั้งค่าเริ่มต้น บริเวณนี้เป็นที่ที่เหมาะสมในการแนบสถานะเฉพาะแอปพลิเคชัน (เช่น เปิดไฟล์แบบเปิด เป็นต้น) กับ aXfer->mAppState นอกจากนี้ คุณควรแนบตัวแฮนเดิลที่จำเป็น เช่น การจัดการบล็อกเข้ากับออบเจ็กต์ BDXTransfer ในจุดนี้ หากมีการส่งคืนรหัสข้อผิดพลาดอื่นที่ไม่ใช่ WEAVE_NO_ERROR จะถือว่าการโอนถูกปฏิเสธและโปรโตคอลจะจัดการการส่งข้อความปฏิเสธพร้อมรหัสดังกล่าว
รายละเอียด | |||||
---|---|---|---|---|---|
พารามิเตอร์ |
|
XferDoneHandler
void(* XferDoneHandler)(BDXTransfer *aXfer)
จัดการกรณีที่การโอนเสร็จสิ้นแล้ว
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
XferErrorHandler
void(* XferErrorHandler)(BDXTransfer *aXfer, StatusReport *aXferError)
จัดการข้อความ TransferError ที่ได้รับหรือส่งโดย BDX
หมายเหตุ: คาดว่าการโอน BDX อาจกู้คืนได้ (เช่น เกิดชั่วคราวจาก PacketBuffers ในขณะนี้) ดังนั้นตัวเลือกในการเรียก Shutdown() จึงเป็นไปให้กับโปรแกรมเมอร์แอปพลิเคชันและโค้ดเรียกกลับที่ระบุไว้ สิ่งที่ต้องทำ: ยืนยันข้อมูลนี้และตรวจเทียบโดยใช้ภาษาในเอกสาร BDX ซึ่งระบุว่า "[A TransferError] ส่งโดยฝ่ายใดฝ่ายหนึ่งได้ทุกเมื่อเพื่อให้การโอนข้อมูลจำนวนมากสิ้นสุดก่อนเวลาอันควร"
รายละเอียด | |||||
---|---|---|---|---|---|
พารามิเตอร์ |
|
ฟังก์ชัน
GetBDXAckFlag
uint16_t GetBDXAckFlag( ExchangeContext *anEc )
GetBDXAckFlag จะแสดงแฟล็กที่เหมาะสมสำหรับช่อง RequestAck ตามการเชื่อมต่อของบริบท Exchange (ไม่มีคำขอ ack สำหรับ TCP) และอิงตามการรองรับเวลาคอมไพล์สำหรับ WRMP
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
||
การส่งคืน |
0 หรือ kSendFlag_RequestAck
|