nl:: Weave:: Profiles:: BDX_Development
מרחב השמות הזה כולל את כל הממשקים ב-Weave לפרופיל Bulk Data Transfer (BDX) שנמצאים באופן פעיל בפיתוח, ואין להשתמש בו לייצור.
סיכום
ספירות |
|
---|---|
@80
|
טיפוסים בני מנייה (enum) |
@81
|
טיפוסים בני מנייה (enum) |
@82
|
טיפוסים בני מנייה (enum) |
@83
|
טיפוסים בני מנייה (enum) |
ערכי דף |
|
---|---|
BdxClient
|
typedef |
BdxServer
|
typedef |
ErrorHandler)(BDXTransfer *aXfer, WEAVE_ERROR anErrorCode)
|
typedefvoid(*
ה-handler הזה מופעל בכל פעם שבה מתרחשת שגיאת 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
ערכי דף
BdxClient
BdxNode BdxClient
BdxServer
BdxNode BdxServer
ErrorHandler
void(* ErrorHandler)(BDXTransfer *aXfer, WEAVE_ERROR anErrorCode)
ה-handler הזה מופעל בכל פעם שבה מתרחשת שגיאת Weave שלא ניתן להחזיר באופן ישיר באמצעות קודי שגיאה לזרימת בקרה בהגדרת המשתמש.
כלומר, אם תתרחש שגיאה בתוך handler אחר שהחתימה שלו בוטלה (למשל, בתגובה להודעה נכנסת של Weave או אפילו נשלחת על ידי הפרוטוקול), ה-handler הזה יופעל כדי שהמשתמש יוכל לקבוע אם ניתן לשחזר את ההעברה ולהמשיך, או אם עליו להפעיל את Shutdown() . חשוב לזכור שיכולה להתרחש שגיאה לפני שכבר הופעלה יותר מדי אובייקטים מסוג BDXTransfer (למשל, במקרה כזה, השגיאה תירשם ביומן על ידי Weave והפרוטוקול יטפל בניקוי כל המצבים הנדרשים שהקצה.
פרטים | |||||
---|---|---|---|---|---|
פרמטרים |
|
GetBlockHandler
void(* GetBlockHandler)(BDXTransfer *aXfer, uint64_t *aLength, uint8_t **aDataBlock, bool *aLastBlock)
Get a block of data to be transmitted.
מבצע הקריאה החוזרת מספק את שטח האחסון הזמני (מאגר הנתונים הזמני ואורך המאגר, שמועברים באמצעות הפניה). מקבל הקריאה החוזרת (אפליקציית המשתמש) צריך להשתמש במאגר הנתונים הזמני שסופק, אבל מסיבות של תאימות לאחור, הוא עלול להחזיר מאגר נתונים זמני משלו. המקבל לא יכול לספק יותר מ-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->mIsReceive=true כדי שהפרוטוקול ישלח הודעת אישור ליוזם. האובייקט BDXTransfer מופעל בהתאם להגדרות ברירת המחדל. מומלץ לצרף כל מצב ספציפי לאפליקציה (נקודות אחיזה של קובץ פתוח וכו') אל aXfer->mAppState. בשלב הזה כדאי גם לצרף את רכיבי ה-handler הנדרשים, למשל טיפול בבלוקים לאובייקט 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->mIsReceive=true כדי שהפרוטוקול ישלח הודעת אישור ליוזם. האובייקט BDXTransfer מופעל בהתאם להגדרות ברירת המחדל. מומלץ לצרף כל מצב ספציפי לאפליקציה (נקודות אחיזה של קובץ פתוח וכו') אל aXfer->mAppState. בשלב הזה כדאי גם לצרף את רכיבי ה-handler הנדרשים, למשל טיפול בבלוקים לאובייקט BDXTransfer. אם מוחזר קוד שגיאה שאינו WEAVE_NO_ERROR, ההנחה היא שההעברה נדחתה והפרוטוקול יטפל בשליחת הודעת דחייה עם הקוד.
פרטים | |||||
---|---|---|---|---|---|
פרמטרים |
|
XferDoneHandler
void(* XferDoneHandler)(BDXTransfer *aXfer)
טפל במקרים שבהם ההעברה הסתיימה.
פרטים | |||
---|---|---|---|
פרמטרים |
|
XferErrorHandler
void(* XferErrorHandler)(BDXTransfer *aXfer, StatusReport *aXferError)
טיפול בהודעות TransferError שהתקבלו או נשלחו על ידי BDX.
הערה: יש להניח שהעברת BDX ניתנת לשחזור (אולי זמנית, למשל, מחוץ ל-PacketBuffers בשלב זה). לכן, האפשרות להפעיל את Shutdown() נשארת אצל מתכנת האפליקציות ובקריאות החוזרות (callback) שהוא מגדיר. משימה לביצוע: לאמת זאת ולהתאים אותה לשפה במסמך ה-BDX, שבה כתוב: "[A TransferError] יכולה להישלח בכל עת על ידי כל אחד מהצדדים כדי לסיים מוקדם את העברת הנתונים בכמות גדולה".
פרטים | |||||
---|---|---|---|---|---|
פרמטרים |
|
פונקציות
GetBDXAckFlag
uint16_t GetBDXAckFlag( ExchangeContext *anEc )
GetBDXAckFlag מחזיר את הסימון המתאים לשדה RequestAck בהתאם לחיבור ההקשר של Exchange (אין בקשה ack ל-TCP), ובהתבסס על תמיכה בזמן הידור ל-WRMP.
פרטים | |||
---|---|---|---|
פרמטרים |
|
||
החזרות |
0 או kSendFlag_RequestAck
|