nl:: Weave:: Profiles:: BDX_Development
מרחב השמות הזה כולל את כל הממשקים ב-Weave של הפרופיל להעברת נתונים בכמות גדולה (BDX) שנמצאים בפיתוח פעיל ואסור להשתמש בהם לצורכי ייצור.
סיכום
ערכים של ספירה |
|
---|---|
@80
|
טיפוסים בני מנייה (enum) |
@81
|
טיפוסים בני מנייה (enum) |
@82
|
טיפוסים בני מנייה (enum) |
@83
|
טיפוסים בני מנייה (enum) |
Typedefs |
|
---|---|
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
Typedefs
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->mIsAccepted=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->mIsaccept=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() נשארת למתכנת האפליקציות ולקריאות החוזרות (callbacks) שהן מגדירות. משימה לביצוע: יש לאמת את הפרטים האלה ולהתאים אותם לשפה במסמך BDX, שכתוב בה: "[A TransferError] יכול להיות בכל זמן על ידי כל אחד מהצדדים לסיים את העברת הנתונים בכמות גדולה".
פרטים | |||||
---|---|---|---|---|---|
פרמטרים |
|
פונקציות
GetBDXAckFlag
uint16_t GetBDXAckFlag( ExchangeContext *anEc )
GetBDXAckflag מחזיר את הדגל המתאים לשדה RequestAck בהתאם לחיבור של ההקשר של ה-Exchange (אין בקשה ל-ack עבור TCP), ומבוסס על התמיכה בזמן ההידור ב-WRMP.
פרטים | |||
---|---|---|---|
פרמטרים |
|
||
החזרות |
0 או kSendflag_RequestAck
|