nl:: Weave:: Profiles:: BDX_Development
這個命名空間包含在 Weave 中用於大量傳輸資料 (BDX) 設定檔的所有介面,這些介面目前仍處於開發階段,不應用於實際工作環境。
摘要
列舉 |
|
---|---|
@80
|
列舉 |
@81
|
列舉 |
@82
|
列舉 |
@83
|
列舉 |
Typedefs |
|
---|---|
BdxClient
|
typedef |
BdxServer
|
typedef |
ErrorHandler)(BDXTransfer *aXfer, WEAVE_ERROR anErrorCode)
|
typedefvoid(*
每當發生 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(*
處理指向長度為 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 欄位傳回適當的標記。
|
結構 |
|
---|---|
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 錯誤,但無法透過錯誤代碼直接傳回使用者應用程式定義的控制流程時,系統就會呼叫這個處理常式。
也就是說,如果其他處理常式的簽名傳回類型無效 (例如回應收到的 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 為 true,則關閉此檔案。
詳細說明 | |||||||||
---|---|---|---|---|---|---|---|---|---|
參數 |
|
ReceiveAcceptHandler
WEAVE_ERROR(* ReceiveAcceptHandler)(BDXTransfer *aXfer, ReceiveAccept *aReceiveAcceptMsg)
當目的地接受先前傳送的 ReceiveInit 時,就會叫用回呼。
如果您在啟動時沒有這麼做,您可能會想利用這個機會開啟檔案或分配資源。
詳細說明 | |||||
---|---|---|---|---|---|
參數 |
|
ReceiveInitHandler
uint16_t(* ReceiveInitHandler)(BDXTransfer *aXfer, ReceiveInit *aReceiveInitMsg)
收到 ReceiveInit 訊息時叫用的回呼。
其任務是決定是否要接受「接收」,如果可以,請設定 aXfer->mIsAccepted=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->mIsAccepted=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
|