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 של השגיאות הוגדר, קוראים לו.

אם המדיניות לא מוגדרת, מבצעים גם את ההעברה כהתנהגות ברירת מחדל.

פרטים
פרמטרים
[in] anErrorCode
קוד שגיאה לעיבוד

DispatchGetBlockHandler

void nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchGetBlockHandler(
  uint64_t *aLength,
  uint8_t **aDataBlock,
  bool *aLastBlock
)

אם הוגדר ה-handler של החסימה לחסימה, קוראים לו.

פרטים
פרמטרים
[in] aLength
אורך הבלוק
[in] aDataBlock
מצביע על בלוק הנתונים
[in] aLastBlock
True אם זו החסימה האחרונה בהעברה

DispatchPutBlockHandler

void nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchPutBlockHandler(
  uint64_t aLength,
  uint8_t *aDataBlock,
  bool aLastBlock
)

אם הוגדר ה-handler של בלוק שם הקובץ, קוראים לו.

פרטים
פרמטרים
[in] aLength
אורך הבלוק
[in] aDataBlock
מצביע על בלוק הנתונים
[in] aLastBlock
True אם זו החסימה האחרונה בהעברה

DispatchReceiveAccept

WEAVE_ERROR nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchReceiveAccept(
  ReceiveAccept *aReceiveAcceptMsg
)

שולחים פשוט בודקים אם הוגדר handler, ואז קוראים לו אם כן.

אם הוגדר ה-handler של הקבלה, מפעילים אותו.

לכן, צריך להשתמש בהם כממשק ציבורי לשיחות חוזרות, שאפליקציות חיצוניות אף פעם לא צריכות לגעת בהן באופן ישיר. יכול להיות שגרסה עתידית של BDXTransfer תשתמש באובייקט בעל גישה במקום לשמור סמנים בודדים לכל אחת מהקריאות החוזרות.

פרטים
פרמטרים
[in] aReceiveAcceptMsg
הודעת ReceiveAccept לעיבוד
החזרות
ערך שגיאה

DispatchRejectHandler

void nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchRejectHandler(
  StatusReport *aReport
)

אם הוגדר handler דחייה, קוראים לו.

אם המדיניות לא מוגדרת, מבצעים גם את ההעברה כהתנהגות ברירת מחדל.

פרטים
פרמטרים
[in] aReport
הודעת דוח הסטטוס בהמתנה לעיבוד

DispatchSendAccept

WEAVE_ERROR nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchSendAccept(
  SendAccept *aSendAcceptMsg
)

אם הוגדר ה-handler של שליחת אימיילים, מפעילים אותו.

פרטים
פרמטרים
[in] aSendAcceptMsg
הודעת SendAccept לעיבוד
החזרות
ערך שגיאה

DispatchXferDoneHandler

void nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchXferDoneHandler(
  void
)

אם הוגדר ה-handler של ההעברה שבוצעה, קוראים לו.

אם המדיניות לא מוגדרת, מבצעים גם את ההעברה כהתנהגות ברירת מחדל.

DispatchXferErrorHandler

void nl::Weave::Profiles::BDX_Development::BDXTransfer::DispatchXferErrorHandler(
  StatusReport *aXferError
)

אם הוגדר מטפל בשגיאות בהעברה, מפעילים אותו.

אם המדיניות לא מוגדרת, מבצעים גם את ההעברה כהתנהגות ברירת מחדל.

פרטים
פרמטרים
[in] aXferError
דוח סטטוס של שגיאה שצריך לעבד

GetDefaultFlags

uint16_t nl::Weave::Profiles::BDX_Development::BDXTransfer::GetDefaultFlags(
  bool aExpectResponse
)

הפונקציה הזו מחזירה את דגלי ברירת המחדל שיישלחו עם הודעה.

פרטים
פרמטרים
[in] 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 הציבורי.

פרטים
פרמטרים
[in] aHandlers
המבנה של מטפלי קריאה חוזרת (callback) שצריך לקרוא

כיבוי

void nl::Weave::Profiles::BDX_Development::BDXTransfer::Shutdown(
  void
)

 Shuts down the current transfer, including closing any open ExchangeContext.

בהזדמנות הזו כדאי להשתמש במשאבים שקשורים להעברה הזו וללוגיקה של האפליקציה.