nl::Weave::Profiles::BDX_Development

這個命名空間包括 Weave 內所有積極開發大量資料移轉 (BDX) 設定檔的介面,這些介面目前仍處於開發階段,因此不得用於正式環境。

摘要

列舉

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

Typedefs

BdxClient typedef
BdxServer typedef
ErrorHandler)(BDXTransfer *aXfer, WEAVE_ERROR anErrorCode) typedef
void(*
發生無法直接透過錯誤代碼傳回至使用者應用程式定義的控制流程時,系統就會呼叫此處理常式。
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

寄件者是發起人時,「接收拒絕」ReceiveReject訊息是用來拒絕提議的廣告交易平台。

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

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

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

當傳送者是發起人時,SendInit 訊息可用來啟動交換作業。

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

寄件者是發起人時,SendReject 訊息是用來拒絕提議的廣告交易平台。

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

錯誤訊息可用來回報錯誤及取消廣告交易平台。

Structs

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 訊息,或甚至由通訊協定分派) 內發生錯誤,系統會呼叫此處理常式,讓使用者可以判斷轉移是否可復原並繼續,或者是否應呼叫 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 中,這可能涉及寫入檔案。

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

ReceiveAcceptHandler

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

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

如果尚未啟動轉移作業,建議您利用這個機會開啟檔案或分配資源以進行轉移作業。

詳細資料
參數
[in] aXfer
指向與這個移轉作業相關聯的 BDXTransfer 指標
[in] aReceiveAcceptMsg
指向正在處理的 ReceiveAccept 訊息

ReceiveInitHandler

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

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

其工作是決定是否要接受 Receive;如果是,請設定 aXfer->mIsaccept=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 訊息

SendInitHandler

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

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

主要工作是決定是否要接受 SendInit。如要接受,請設定 aXfer->mIsaccept=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