nl:: Weave:: Profiles:: BDX_Development:: BDXTransfer
#include <src/lib/profiles/bulk-data-transfer/Development/BDXTransferState.h>
המבנה הזה מכיל חברי נתונים שמייצגים העברה פעילה של BDX.
סיכום
האובייקטים האלה משמשים את BdxProtocol כדי לשמור על מצב הפרוטוקול. הם מנוהלים על ידי BdxServer, שמטפל ביצירה ובאתחול של העברות חדשות, כולל ניהול חיבורים ו-ExchangeContexts.
מאפיינים ציבוריים |
|
---|---|
mAmInitiator
|
bool
|
mAmSender
|
bool
|
mAppState
|
void *
|
mBlockCounter
|
uint32_t
מספר הבלוק הבא שאנחנו מצפים לקבל BlockQuery או BlockACK עבור השליחה (לאחר שההעברה תתחיל באופן רשמי).
|
mBytesSent
|
uint64_t
|
mExchangeContext
|
|
mFileDesignator
|
קובץ/חסום חברים בנתונים קשורים TODO: להסיר את זה? או שפשוט צריך ליצור חוזה שמפרט איך המחרוזת הזו תיראה ואיך ישתמשו בה? באופן ספציפי, האם הוא מגובה על ידי PacketBuffer? במקרה כזה, סביר להניח שהוא לא צריך להישאר לאורך כל הגלקסיה כי היא תופסת pbuf
|
mFirstQuery
|
bool
|
mHandlers
|
|
mIsAccepted
|
bool
|
mIsCompletedSuccessfully
|
bool
|
mIsInitiated
|
bool
|
mIsWideRange
|
bool
|
mLength
|
uint64_t
|
mMaxBlockSize
|
uint16_t
|
mNext)(BDXTransfer &)
|
|
mStartOffset
|
uint64_t
|
mTransferMode
|
uint8_t
|
mVersion
|
uint8_t
|
פונקציות ציבוריות |
|
---|---|
DispatchErrorHandler(WEAVE_ERROR anErrorCode)
|
void
אם ה-handler של השגיאות הוגדר, קוראים לו.
|
DispatchGetBlockHandler(uint64_t *aLength, uint8_t **aDataBlock, bool *aLastBlock)
|
void
אם הוגדר ה-handler של החסימה לחסימה, קוראים לו.
|
DispatchPutBlockHandler(uint64_t aLength, uint8_t *aDataBlock, bool aLastBlock)
|
void
אם הוגדר ה-handler של בלוק שם הקובץ, קוראים לו.
|
DispatchReceiveAccept(ReceiveAccept *aReceiveAcceptMsg)
|
שולחים פשוט בודקים אם הוגדר handler, ואז קוראים לו אם כן.
|
DispatchRejectHandler(StatusReport *aReport)
|
void
אם הוגדר handler דחייה, קוראים לו.
|
DispatchSendAccept(SendAccept *aSendAcceptMsg)
|
אם הוגדר ה-handler של שליחת אימיילים, מפעילים אותו.
|
DispatchXferDoneHandler(void)
|
void
אם הוגדר ה-handler של ההעברה שבוצעה, קוראים לו.
|
DispatchXferErrorHandler(StatusReport *aXferError)
|
void
אם הוגדר מטפל בשגיאות בהעברה, מפעילים אותו.
|
GetDefaultFlags(bool aExpectResponse)
|
uint16_t
הפונקציה הזו מחזירה את דגלי ברירת המחדל שיישלחו עם הודעה.
|
IsAsync(void)
|
bool
Returns true if this transfer is asynchronous, false otherwise. |
IsDriver(void)
|
bool
Returns true if this entity (node) is the driver for this transfer, false otherwise. |
Reset(void)
|
void
Sets all pointers to NULL, resets counters, etc. |
SetHandlers(BDXHandlers aHandlers)
|
void
הפונקציה הזו מגדירה את ה-handlers באובייקט BDXTransfer הזה.
|
Shutdown(void)
|
void
Shuts down the current transfer, including closing any open ExchangeContext. |
מאפיינים ציבוריים
mAmInitiator
bool nl::Weave::Profiles::BDX_Development::BDXTransfer::mAmInitiator
mAmSender
bool nl::Weave::Profiles::BDX_Development::BDXTransfer::mAmSender
mAppState
void * nl::Weave::Profiles::BDX_Development::BDXTransfer::mAppState
mBlockCounter
uint32_t nl::Weave::Profiles::BDX_Development::BDXTransfer::mBlockCounter
מספר הבלוק הבא שאנחנו מצפים לקבל BlockQuery או BlockACK עבור השליחה (לאחר שההעברה תתחיל באופן רשמי).
בעת הקבלה, זוהי ה-BlockSend הבא שאנחנו מצפים לקבל או ה-BlockQuery האחרון ששלחנו (אחרי שההעברה התחילה באופן רשמי והשאילתה הראשונה שנשלחה).
mBytesSent
uint64_t nl::Weave::Profiles::BDX_Development::BDXTransfer::mBytesSent
mExchangeContext
ExchangeContext * nl::Weave::Profiles::BDX_Development::BDXTransfer::mExchangeContext
mFileDesignator
ReferencedString nl::Weave::Profiles::BDX_Development::BDXTransfer::mFileDesignator
קובץ/חסום חברים בנתונים קשורים TODO: להסיר את זה? או שפשוט צריך ליצור חוזה שמפרט איך המחרוזת הזו תיראה ואיך ישתמשו בה? באופן ספציפי, האם הוא מגובה על ידי PacketBuffer? במקרה כזה, סביר להניח שהוא לא צריך להישאר לאורך כל הגלקסיה כי היא תופסת pbuf
mFirstQuery
bool nl::Weave::Profiles::BDX_Development::BDXTransfer::mFirstQuery
mHandlers
BDXHandlers nl::Weave::Profiles::BDX_Development::BDXTransfer::mHandlers
mIsAccepted
bool nl::Weave::Profiles::BDX_Development::BDXTransfer::mIsAccepted
mIsCompletedSuccessfully
bool nl::Weave::Profiles::BDX_Development::BDXTransfer::mIsCompletedSuccessfully
mIsInitiated
bool nl::Weave::Profiles::BDX_Development::BDXTransfer::mIsInitiated
mIsWideRange
bool nl::Weave::Profiles::BDX_Development::BDXTransfer::mIsWideRange
mLength
uint64_t nl::Weave::Profiles::BDX_Development::BDXTransfer::mLength
mMaxBlockSize
uint16_t nl::Weave::Profiles::BDX_Development::BDXTransfer::mMaxBlockSize
mNext
WEAVE_ERROR(* nl::Weave::Profiles::BDX_Development::BDXTransfer::mNext)(BDXTransfer &)
mStartOffset
uint64_t nl::Weave::Profiles::BDX_Development::BDXTransfer::mStartOffset
mTransferMode
uint8_t nl::Weave::Profiles::BDX_Development::BDXTransfer::mTransferMode
mVersion
uint8_t nl::Weave::Profiles::BDX_Development::BDXTransfer::mVersion
פונקציות ציבוריות
DispatchErrorHandler
void nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchErrorHandler( WEAVE_ERROR anErrorCode )
אם ה-handler של השגיאות הוגדר, קוראים לו.
אם המדיניות לא מוגדרת, מבצעים גם את ההעברה כהתנהגות ברירת מחדל.
פרטים | |||
---|---|---|---|
פרמטרים |
|
DispatchGetBlockHandler
void nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchGetBlockHandler( uint64_t *aLength, uint8_t **aDataBlock, bool *aLastBlock )
אם הוגדר ה-handler של החסימה לחסימה, קוראים לו.
פרטים | |||||||
---|---|---|---|---|---|---|---|
פרמטרים |
|
DispatchPutBlockHandler
void nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchPutBlockHandler( uint64_t aLength, uint8_t *aDataBlock, bool aLastBlock )
אם הוגדר ה-handler של בלוק שם הקובץ, קוראים לו.
פרטים | |||||||
---|---|---|---|---|---|---|---|
פרמטרים |
|
DispatchReceiveAccept
WEAVE_ERROR nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchReceiveAccept( ReceiveAccept *aReceiveAcceptMsg )
שולחים פשוט בודקים אם הוגדר handler, ואז קוראים לו אם כן.
אם הוגדר ה-handler של הקבלה, מפעילים אותו.
לכן, צריך להשתמש בהם כממשק ציבורי לשיחות חוזרות, שאפליקציות חיצוניות אף פעם לא צריכות לגעת בהן באופן ישיר. יכול להיות שגרסה עתידית של BDXTransfer תשתמש באובייקט בעל גישה במקום לשמור סמנים בודדים לכל אחת מהקריאות החוזרות.
פרטים | |||
---|---|---|---|
פרמטרים |
|
||
החזרות |
ערך שגיאה
|
DispatchRejectHandler
void nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchRejectHandler( StatusReport *aReport )
אם הוגדר handler דחייה, קוראים לו.
אם המדיניות לא מוגדרת, מבצעים גם את ההעברה כהתנהגות ברירת מחדל.
פרטים | |||
---|---|---|---|
פרמטרים |
|
DispatchSendAccept
WEAVE_ERROR nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchSendAccept( SendAccept *aSendAcceptMsg )
אם הוגדר ה-handler של שליחת אימיילים, מפעילים אותו.
פרטים | |||
---|---|---|---|
פרמטרים |
|
||
החזרות |
ערך שגיאה
|
DispatchXferDoneHandler
void nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchXferDoneHandler( void )
אם הוגדר ה-handler של ההעברה שבוצעה, קוראים לו.
אם המדיניות לא מוגדרת, מבצעים גם את ההעברה כהתנהגות ברירת מחדל.
DispatchXferErrorHandler
void nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchXferErrorHandler( StatusReport *aXferError )
אם הוגדר מטפל בשגיאות בהעברה, מפעילים אותו.
אם המדיניות לא מוגדרת, מבצעים גם את ההעברה כהתנהגות ברירת מחדל.
פרטים | |||
---|---|---|---|
פרמטרים |
|
GetDefaultFlags
uint16_t nl::Weave::Profiles::BDX_Development::BDXTransfer::GetDefaultFlags( bool aExpectResponse )
הפונקציה הזו מחזירה את דגלי ברירת המחדל שיישלחו עם הודעה.
פרטים | |||
---|---|---|---|
פרמטרים |
|
||
החזרות |
הדגלים לשליחה
|
IsAsync
bool nl::Weave::Profiles::BDX_Development::BDXTransfer::IsAsync( void )
Returns true if this transfer is asynchronous, false otherwise.
פרטים | |
---|---|
החזרות |
True אם ההעברה היא אסינכרונית.
|
IsDriver
bool nl::Weave::Profiles::BDX_Development::BDXTransfer::IsDriver( void )
Returns true if this entity (node) is the driver for this transfer, false otherwise.
פרטים | |
---|---|
החזרות |
true אם הישות הזו היא הגורם המניע את ההעברה הזו
|
איפוס
void nl::Weave::Profiles::BDX_Development::BDXTransfer::Reset( void )
Sets all pointers to NULL, resets counters, etc.
בוצעה שיחה בזמן כיבוי.
SetHandlers
void nl::Weave::Profiles::BDX_Development::BDXTransfer::SetHandlers( BDXHandlers aHandlers )
הפונקציה הזו מגדירה את ה-handlers באובייקט BDXTransfer הזה.
צריך תמיד להשתמש בשיטה הזו במקום לנסות להגדיר אותן באופן ידני, כי ההטמעה הבסיסית של אופן האחסון של המצביעים של פונקציות ה-handler היא לא חלק מה-API הציבורי.
פרטים | |||
---|---|---|---|
פרמטרים |
|
כיבוי
void nl::Weave::Profiles::BDX_Development::BDXTransfer::Shutdown( void )
Shuts down the current transfer, including closing any open ExchangeContext.
בהזדמנות הזו כדאי להשתמש במשאבים שקשורים להעברה הזו וללוגיקה של האפליקציה.