nl::Weave::Profiles::BDX_Development::BDXTransfer

#include <src/lib/profiles/bulk-data-transfer/Development/BDXTransferState.h>

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

סיכום

האובייקטים האלה משמשים את BdxProtocol כדי לשמור על מצב הפרוטוקול. הם מנוהלים על ידי BdxServer, שמטפל ביצירה ובהפעלה של העברות חדשות, כולל ניהול של Connections ו-ExchangeContexts.

מאפיינים ציבוריים

mAmInitiator
bool
mAmSender
bool
mAppState
void *
mBlockCounter
uint32_t
מספר הבלוק הבא שאנחנו מצפים לקבל עבורו BlockQuery או blockACK בזמן השליחה (ברגע שההעברה תתחיל באופן רשמי).
mBytesSent
uint64_t
mExchangeContext
mFileDesignator
קובץ/לחסום חברים קשורים נתונים TODO: להסיר זאת? או האם עלינו פשוט לקבוע חוזה של מראה המחרוזת הזו, ואיך ייעשה בה שימוש? באופן ספציפי, האם הוא מגובה על ידי PacketBuffer? אם כן, סביר להניח שלא יישאר מקום למשך כל ה-xfer כי זה תופס
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
אם הגורם המטפל בשגיאות הוגדר, יש לקרוא לו.
DispatchGetBlockHandler(uint64_t *aLength, uint8_t **aDataBlock, bool *aLastBlock)
void
אם הוגדר ה-handler לחסימה של get, יש לקרוא לו.
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? אם כן, סביר להניח שלא יישאר מקום למשך כל ה-xfer כי זה תופס

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
)

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

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

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

DispatchGetBlockHandler

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

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

פרטים
פרמטרים
[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
הודעת StatusReport לעיבוד

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
המבנה של ה-handlers של הקריאה החוזרת (callback) שיש לקרוא

כיבוי

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

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

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