nl:: Weave:: Profiles:: BDX_Development
這個命名空間包括 Weave 內所有積極開發大量資料移轉 (BDX) 設定檔的介面,這些介面目前仍處於開發階段,因此不得用於正式環境。
摘要
列舉 |
|
---|---|
@80
|
列舉 |
@81
|
列舉 |
@82
|
列舉 |
@83
|
列舉 |
Typedefs |
|
---|---|
BdxClient
|
typedef |
BdxServer
|
typedef |
ErrorHandler)(BDXTransfer *aXfer, WEAVE_ERROR anErrorCode)
|
typedefvoid(*
發生無法直接透過錯誤代碼傳回至使用者應用程式定義的控制流程時,系統就會呼叫此處理常式。 |
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(*
處理長度為 aLength 的 aDataBlock 的資料點區塊。 |
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(*
處理 BDX 接收或傳送的 TransferError 訊息。 |
函式 |
|
---|---|
GetBDXAckFlag(ExchangeContext *anEc)
|
uint16_t
GetBDXAckFlag 會根據廣告交易平台結構定義的連線 (TCP 無要求確認),並基於 WRMP 的編譯時間支援,傳回 RequestAck 欄位的適當標記。
|
Structs |
|
---|---|
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)
發生無法直接透過錯誤代碼傳回至使用者應用程式定義的控制流程時,系統就會呼叫此處理常式。
也就是說,如果其他處理常式的簽章含有傳回型別為空白的處理常式 (例如回應傳入的 Weave 訊息,或甚至由通訊協定分派) 內發生錯誤,系統會呼叫此處理常式,讓使用者可以判斷轉移是否可復原並繼續,或者是否應呼叫 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)
處理長度為 aLength 的 aDataBlock 的資料點區塊。
這有可能涉及將檔案寫入檔案,如果 isLastBlock 中,這可能涉及寫入檔案。
詳細資料 | |||||||||
---|---|---|---|---|---|---|---|---|---|
參數 |
|
ReceiveAcceptHandler
WEAVE_ERROR(* ReceiveAcceptHandler)(BDXTransfer *aXfer, ReceiveAccept *aReceiveAcceptMsg)
目的地接受先前傳送的 ReceiveInit 時,呼叫回呼。
如果尚未啟動轉移作業,建議您利用這個機會開啟檔案或分配資源以進行轉移作業。
詳細資料 | |||||
---|---|---|---|---|---|
參數 |
|
ReceiveInitHandler
uint16_t(* ReceiveInitHandler)(BDXTransfer *aXfer, ReceiveInit *aReceiveInitMsg)
收到 ReceiveInit 訊息時叫用的回呼。
其工作是決定是否要接受 Receive;如果是,請設定 aXfer->mIsaccept=true,讓通訊協定傳送接受訊息給啟動者。BDXTransfer 物件會啟動成預設設定。很適合將任何應用程式特定狀態 (開啟檔案控點等) 附加至 aXfer->mAppState。您也應附上必要的處理常式,例如:此時區塊不會對 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。您也應附上必要的處理常式,例如:此時區塊不會對 BDXTransfer 物件進行處理。如果傳回 WEAVE_NO_ERROR 以外的錯誤代碼,系統會假設傳輸作業遭到拒絕,通訊協定則會處理含有代碼的拒絕訊息。
詳細資料 | |||||
---|---|---|---|---|---|
參數 |
|
XferDoneHandler
void(* XferDoneHandler)(BDXTransfer *aXfer)
處理轉移完成的情況。
詳細資料 | |||
---|---|---|---|
參數 |
|
XferErrorHandler
void(* XferErrorHandler)(BDXTransfer *aXfer, StatusReport *aXferError)
處理 BDX 接收或傳送的 TransferError 訊息。
注意:BDX 傳輸被假設是可能可復原的 (可能是暫時從 PacketBuffers 中移出),因此呼叫 Shutdown() 的選項會留給應用程式程式設計師,以及他們定義的回呼。待辦事項:請確認上述內容與 BDX 文件中的語言進行協調,其中顯示:「[A TransferError] 任何一方都能隨時傳送,以便預先準備 再結束大量資料移轉作業。」
詳細資料 | |||||
---|---|---|---|---|---|
參數 |
|
函式
GetBDXAckFlag
uint16_t GetBDXAckFlag( ExchangeContext *anEc )
GetBDXAckFlag 會根據廣告交易平台結構定義的連線 (TCP 無要求確認),並基於 WRMP 的編譯時間支援,傳回 RequestAck 欄位的適當標記。
詳細資料 | |||
---|---|---|---|
參數 |
|
||
傳回 |
0 或 kSendFlag_RequestAck
|