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(*
มีการเรียกใช้ Callback เมื่อได้รับข้อความ ReceiveInit |
RejectHandler)(BDXTransfer *aXfer, StatusReport *aReport)
|
Typedefvoid(*
เรียกใช้หากข้อความ Init ก่อนหน้านี้ถูกปฏิเสธโดยปลายทาง |
SendAcceptHandler)(BDXTransfer *aXfer, SendAccept *aSendAcceptMsg)
|
Typedef ระบบจะเรียกใช้ Callback เมื่อปลายทางยอมรับ SendInit ที่ส่งไปก่อนหน้านี้ |
SendInitHandler)(BDXTransfer *aXfer, SendInit *aSendInitMsg)
|
Typedefuint16_t(*
มีการเรียกใช้ Callback เมื่อได้รับข้อความ SendInit |
XferDoneHandler)(BDXTransfer *aXfer)
|
Typedefvoid(*
จัดการกรณีที่การโอนเสร็จสมบูรณ์แล้ว |
XferErrorHandler)(BDXTransfer *aXfer, StatusReport *aXferError)
|
Typedefvoid(*
จัดการข้อความ TransferError ที่ได้รับหรือส่งโดย BDX |
ฟังก์ชัน |
|
---|---|
GetBDXAckFlag(ExchangeContext *anEc)
|
uint16_t
GetBDXAckFlag ส่งคืน Flag ที่เหมาะสมสำหรับช่อง 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 ได้ (เช่น มีออบเจ็กต์การโอนที่จัดสรรมากเกินไป) ในกรณีดังกล่าว Weave จะบันทึกข้อผิดพลาดดังกล่าวและโปรโตคอลจะจัดการล้างสถานะที่จำเป็นตามที่ Weave จัดสรรไว้
รายละเอียด | |||||
---|---|---|---|---|---|
พารามิเตอร์ |
|
GetBlockHandler
void(* GetBlockHandler)(BDXTransfer *aXfer, uint64_t *aLength, uint8_t **aDataBlock, bool *aLastBlock)
Get a block of data to be transmitted.
ผู้โทรระบุพื้นที่ในการบัฟเฟอร์ (บัฟเฟอร์และความยาวของบัฟเฟอร์ที่ส่งผ่านมาโดยการอ้างอิง) 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)
มีการเรียกใช้ Callback เมื่อได้รับข้อความ 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)
ระบบจะเรียกใช้ Callback เมื่อปลายทางยอมรับ SendInit ที่ส่งไปก่อนหน้านี้
คุณอาจต้องการใช้โอกาสนี้เพื่อเปิดไฟล์หรือจัดสรรทรัพยากรสำหรับการโอน หากคุณไม่ได้ดำเนินการในตอนเริ่มต้น
รายละเอียด | |||||
---|---|---|---|---|---|
พารามิเตอร์ |
|
SendInitHandler
uint16_t(* SendInitHandler)(BDXTransfer *aXfer, SendInit *aSendInitMsg)
มีการเรียกใช้ Callback เมื่อได้รับข้อความ 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() เป็นโปรแกรมเมอร์ของแอปพลิเคชันและ Callback ที่กําหนดไว้ TODO: ตรวจสอบยืนยันและปรับยอดด้วยภาษาในเอกสาร BDX ซึ่งระบุว่า "[ TransferError] ทั้ง 2 ฝ่ายสามารถส่งล่วงหน้าเมื่อใดก็ได้ หยุดการโอนข้อมูลจำนวนมาก"
รายละเอียด | |||||
---|---|---|---|---|---|
พารามิเตอร์ |
|
ฟังก์ชัน
GetBDXAckFlag
uint16_t GetBDXAckFlag( ExchangeContext *anEc )
GetBDXAckFlag ส่งคืน Flag ที่เหมาะสมสำหรับช่อง RequestAck โดยขึ้นอยู่กับการเชื่อมต่อของบริบท Exchange (ไม่มีคำขอ Ack สำหรับ TCP) และอิงตามการรองรับเวลาคอมไพล์สำหรับ WRMP
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
||
การคืนสินค้า |
0 หรือ kSendFlag_RequestAck
|