nl::Weave::Profiles::BDX_Development

這個命名空間包含在 Weave 中用於大量傳輸資料 (BDX) 設定檔的所有介面,這些介面目前仍處於開發階段,不應用於實際工作環境。

摘要

列舉

@80 列舉
@81 列舉
@82 列舉
@83 列舉

Typedefs

BdxClient typedef
BdxServer typedef
ErrorHandler)(BDXTransfer *aXfer, WEAVE_ERROR anErrorCode) typedef
void(*
每當發生 Weave 錯誤,但無法透過錯誤代碼直接傳回使用者應用程式定義的控制流程時,系統就會呼叫這個處理常式。
GetBlockHandler)(BDXTransfer *aXfer, uint64_t *aLength, uint8_t **aDataBlock, bool *aLastBlock) typedef
void(*
Get a block of data to be transmitted.
PutBlockHandler)(BDXTransfer *aXfer, uint64_t aLength, uint8_t *aDataBlock, bool aLastBlock) typedef
void(*
處理指向長度為 aLength 的 aDataBlock 的資料區塊。
ReceiveAcceptHandler)(BDXTransfer *aXfer, ReceiveAccept *aReceiveAcceptMsg) typedef
當目的地接受先前傳送的 ReceiveInit 時,就會叫用回呼。
ReceiveInitHandler)(BDXTransfer *aXfer, ReceiveInit *aReceiveInitMsg) typedef
uint16_t(*
收到 ReceiveInit 訊息時叫用的回呼。
RejectHandler)(BDXTransfer *aXfer, StatusReport *aReport) typedef
void(*
如果先前的任一 Init 訊息遭到目的地拒絕,就會叫用該訊息。
SendAcceptHandler)(BDXTransfer *aXfer, SendAccept *aSendAcceptMsg) typedef
目的地接受先前傳送的 SendInit 時,就會叫用回呼。
SendInitHandler)(BDXTransfer *aXfer, SendInit *aSendInitMsg) typedef
uint16_t(*
收到 SendInit 訊息時叫用的回呼。
XferDoneHandler)(BDXTransfer *aXfer) typedef
void(*
處理轉移作業完成的情況。
XferErrorHandler)(BDXTransfer *aXfer, StatusReport *aXferError) typedef
void(*
處理 BDX 接收或傳送的 TransferError 訊息。

函式

GetBDXAckFlag(ExchangeContext *anEc)
uint16_t
GetBDXAckFlag 會根據廣告交易平台結構定義的連線 (TCP 沒有要求確認),並根據 WRMP 的編譯時間支援,為 RequestAck 欄位傳回適當的標記。

類別

nl::Weave::Profiles::BDX_Development::BdxNode
nl::Weave::Profiles::BDX_Development::BlockAck

BlockAck 訊息用來確認資料區塊。

nl::Weave::Profiles::BDX_Development::BlockAckV1

BlockAckV1 訊息是用來確認資料區塊。

nl::Weave::Profiles::BDX_Development::BlockEOF

BlockEOF 訊息會將最後一個區塊的資料從寄件者轉移給接收者。

nl::Weave::Profiles::BDX_Development::BlockEOFAck

BlockEOFAck 訊息是用來確認資料的最後一個區塊。

nl::Weave::Profiles::BDX_Development::BlockEOFAckV1

BlockEOFAckV1 訊息是用來確認資料的最後一個區塊。

nl::Weave::Profiles::BDX_Development::BlockEOFV1

BlockEOFV1 訊息會將最後一個區塊的資料從寄件者轉移給接收者。

nl::Weave::Profiles::BDX_Development::BlockQuery

BlockQuery 訊息的用途是要求將某個資料區塊從寄件者傳送給接收者。

nl::Weave::Profiles::BDX_Development::BlockQueryV1

BlockQueryV1 訊息的用途是要求將某個資料區塊從寄件者傳送到接收方。

nl::Weave::Profiles::BDX_Development::BlockSend

BlockSend 訊息的用途是將傳送區塊的資料從寄件者轉移給接收者。

nl::Weave::Profiles::BDX_Development::BlockSendV1

BlockSendV1 訊息的用途是將某個資料區塊從傳送者轉移給接收者。

nl::Weave::Profiles::BDX_Development::ReceiveAccept

接收者是發起人時,ReceiveAccept 訊息會用來接受提議的交換。

nl::Weave::Profiles::BDX_Development::ReceiveInit

當接收者是發起人時,系統會使用 ReceiveInit 訊息啟動交換作業。

nl::Weave::Profiles::BDX_Development::ReceiveReject

如果寄件者是發起人,則「Receive 拒」ReceiveReject訊息會用於拒絕建議的廣告交易平台。

nl::Weave::Profiles::BDX_Development::SendAccept

當傳送者是發起人時,系統會使用 SendAccept 訊息接受建議的廣告交易平台。

nl::Weave::Profiles::BDX_Development::SendInit

當傳送者是發起人時,系統會使用 SendInit 訊息啟動交換作業。

nl::Weave::Profiles::BDX_Development::SendReject

如果寄件者是發起人,系統會使用「Sendden」SendReject訊息拒絕建議的交換項目。

nl::Weave::Profiles::BDX_Development::TransferError

錯誤訊息用於回報錯誤及取消交換。

結構

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

這個結構包含代表有效 BDX 移轉作業的資料成員。

命名空間

nl::Weave::Profiles::BDX_Development::BdxProtocol

列舉

@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 會記錄上述錯誤,而通訊協定會清除其分配的任何必要狀態。

詳細說明
參數
[in] aXfer
指向與這項轉移作業相關聯的 BDXTransfer 指標
[in] anErrorCode
我們需要處理的錯誤代碼

GetBlockHandler

void(* GetBlockHandler)(BDXTransfer *aXfer, uint64_t *aLength, uint8_t **aDataBlock, bool *aLastBlock)

Get a block of data to be transmitted.

呼叫端提供緩衝空間 (透過參照傳入的緩衝區和長度)。呼叫端 (使用者應用程式) 應使用提供的緩衝區,但基於回溯相容性的因素,可能會傳回自己的緩衝區。受呼叫者提供的位元組不得超過 aLength。傳回時,aLength 包含讀取至緩衝區的實際位元組數。

詳細說明
參數
[in] aXfer
與這項進行中的轉移作業相關聯的 BDXTransfer
[in,out] aLength
在這個區塊中讀取和儲存的資料長度。呼叫函式時,會包含 aDataBlock 中傳遞的緩衝區長度。傳回時,此變數會包含實際讀取的資料長度。
[in,out] aDataBlock
資料區塊的指標。輸入內容時,此容器包含架構提供的緩衝區;呼叫端可能會使用該空間填滿緩衝區,或提供自己的緩衝空間 (適用於回溯相容性應用程式)。使用提供的緩衝區的應用程式不得假設任何對齊。
[out] aLastBlock
如果區塊應以 BlockEOF 的形式傳送,且轉移作業已完成,則為「true」,否則傳回「false」

PutBlockHandler

void(* PutBlockHandler)(BDXTransfer *aXfer, uint64_t aLength, uint8_t *aDataBlock, bool aLastBlock)

處理指向長度為 aLength 的 aDataBlock 的資料區塊。

這可能包括將檔案寫入檔案,如果 isLastBlock 為 true,則關閉此檔案。

詳細說明
參數
[in] aXfer
與這項進行中的轉移作業相關聯的 BDXTransfer
[in] aLength
在指定區塊中讀取和儲存的資料長度
[in] aDataBlock
實際的資料區塊
[in] aLastBlock
如果系統收到封鎖 BlockEOF 為 True,則為 True,否則傳回 False。如果為 true,程式設計師應完成任何檔案控制代碼,請記住,在這之後,系統會呼叫 XferDoneHandler

ReceiveAcceptHandler

WEAVE_ERROR(* ReceiveAcceptHandler)(BDXTransfer *aXfer, ReceiveAccept *aReceiveAcceptMsg)

當目的地接受先前傳送的 ReceiveInit 時,就會叫用回呼。

如果您在啟動時沒有這麼做,您可能會想利用這個機會開啟檔案或分配資源。

詳細說明
參數
[in] aXfer
指向與這項轉移作業相關聯的 BDXTransfer 指標
[in] aReceiveAcceptMsg
指向正在處理的「ReceiveAccept」ReceiveAccept訊息指標

ReceiveInitHandler

uint16_t(* ReceiveInitHandler)(BDXTransfer *aXfer, ReceiveInit *aReceiveInitMsg)

收到 ReceiveInit 訊息時叫用的回呼。

其任務是決定是否要接受「接收」,如果可以,請設定 aXfer->mIsAccepted=true,這樣通訊協定就會傳送接受訊息給啟動者。BDXTransfer 物件已啟動為預設設定。方便您將任何應用程式專屬狀態 (開啟檔案控制點等) 附加至 aXfer->mAppState。此時,您也必須附加必要的處理常式,例如封鎖處理至 BDXTransfer 物件。如果傳回 kStatus_Success 以外的錯誤代碼,系統會假設轉移作業遭拒,且通訊協定會處理含有該代碼的拒絕訊息。

詳細說明
參數
[in] aXfer
指向與這項轉移作業相關聯的 BDXTransfer 指標
[in] aReceiveInitMsg
指向正在處理的 ReceiveInit 訊息指標

RejectHandler

void(* RejectHandler)(BDXTransfer *aXfer, StatusReport *aReport)

如果先前的任一 Init 訊息遭到目的地拒絕,就會叫用該訊息。

詳細說明
參數
[in] aXfer
指向與這項轉移作業相關聯的 BDXTransfer 指標
[in] aReport
指向「正在處理的 StatusReport」訊息拒絕指標

SendAcceptHandler

WEAVE_ERROR(* SendAcceptHandler)(BDXTransfer *aXfer, SendAccept *aSendAcceptMsg)

目的地接受先前傳送的 SendInit 時,就會叫用回呼。

如果您在啟動時沒有這麼做,您可能會想利用這個機會開啟檔案或分配資源。

詳細說明
參數
[in] aXfer
指向與這項轉移作業相關聯的 BDXTransfer 指標
[in] aSendAcceptMsg
遊標指向正在處理的「SendAccept」SendAccept訊息

SendInitHandler

uint16_t(* SendInitHandler)(BDXTransfer *aXfer, SendInit *aSendInitMsg)

收到 SendInit 訊息時叫用的回呼。

其工作是決定是否要接受 SendInit,如果可以,請設定 aXfer->mIsAccepted=true,讓通訊協定傳送接受訊息給啟動器。BDXTransfer 物件已啟動為預設設定。方便您將任何應用程式專屬狀態 (開啟檔案控制點等) 附加至 aXfer->mAppState。此時,您也必須附加必要的處理常式,例如封鎖處理至 BDXTransfer 物件。如果傳回 WEAVE_NO_ERROR 以外的錯誤代碼,系統會假設轉移作業遭拒,且通訊協定會處理含有該代碼的拒絕訊息。

詳細說明
參數
[in] aXfer
指向與這項轉移作業相關聯的 BDXTransfer 指標
[in] aSendInitMsg
遊標指向正在處理的 SendInit 訊息

XferDoneHandler

void(* XferDoneHandler)(BDXTransfer *aXfer)

處理轉移作業完成的情況。

詳細說明
參數
[in] aXfer
指向與這項轉移作業相關聯的 BDXTransfer 指標

XferErrorHandler

void(* XferErrorHandler)(BDXTransfer *aXfer, StatusReport *aXferError)

處理 BDX 接收或傳送的 TransferError 訊息。

注意:BDX 傳輸的假設是可以復原的 (可能是暫時性的,例如目前已不再使用 PacketBuffers),因此呼叫 Shutdown() 的選項會留給應用程式程式設計人員及其定義的回呼。任務:確認內容與 BDX 文件中的語言並協調,其中註明:「[A TransferError] 一方可隨時傳送至大量資料傳輸。」

詳細說明
參數
[in] aXfer
指向與這項轉移作業相關聯的 BDXTransfer 指標
[in] aXferError
遊標指向正在處理的 StatusReport 訊息錯誤訊息

函式

GetBDXAckFlag

uint16_t GetBDXAckFlag(
  ExchangeContext *anEc
)

GetBDXAckFlag 會根據廣告交易平台結構定義的連線 (TCP 沒有要求確認),並根據 WRMP 的編譯時間支援,為 RequestAck 欄位傳回適當的標記。

詳細說明
參數
[in] anEc
系統應根據
傳回
0 或 kSendFlag_RequestAck