透過集合功能整理內容 你可以依據偏好儲存及分類內容。

nl::Weave::Profiles::BDX_Devment::Bdx Protocol

總結

函式

HandleConnectionClosed(ExchangeContext *anEc, WeaveConnection *aCon, WEAVE_ERROR aConErr)
void
連線本身關閉時的處理常式。
HandleKeyError(ExchangeContext *anEc, WEAVE_ERROR aKeyErr)
void
處理常式已用於加密及驗證 Weave 訊息的金鑰已無法使用。
HandleResponse(ExchangeContext *anEc, const IPPacketInfo *aPktInfo, const WeaveMessageInfo *aWeaveMsgInfo, uint32_t aProfileId, uint8_t aMessageType, PacketBuffer *aPacketBuffer)
void
郵件送達 BDX 交換作業的主要處理常式。
HandleResponseNotAccepted(BDXTransfer & aXfer, uint32_t aProfileId, uint8_t aMessageType, PacketBuffer *aPacketBuffer)
HandleResponseReceive(BDXTransfer & aXfer, uint32_t aProfileId, uint8_t aMessageType, PacketBuffer *aPacketBuffer)
HandleResponseTimeout(ExchangeContext *anEc)
void
代表我們等待回應的處理常式。
HandleResponseTransmit(BDXTransfer & aXfer, uint32_t aProfileId, uint8_t aMessageType, PacketBuffer *aPacketBuffer)
HandleSendError(ExchangeContext *anEc, WEAVE_ERROR aSendErr, void *aMsgCtxt)
void
我們尚未確認的 WRMP 訊息處理處理常式。
InitBdxReceive(BDXTransfer & aXfer, bool aICanDrive, bool aUCanDrive, bool aAsyncOk, ReferencedTLVData *aMetaData)
InitBdxSend(BDXTransfer & aXfer, bool aICanDrive, bool aUCanDrive, bool aAsyncOk, ReferencedTLVData *aMetaData)
InitBdxSend(BDXTransfer & aXfer, bool aICanDrive, bool aUCanDrive, bool aAsyncOk, SendInit::MetaDataTLVWriteCallback aMetaDataWriteCallback, void *aMetaDataAppState)
SendBadBlockCounterStatusReport(BDXTransfer & aXfer)
SendBlockAckV1(BDXTransfer & aXfer)
這個函式會針對指定的 BDXTransfer 傳送 BlockAckV1 訊息。
SendBlockEOFAckV1(BDXTransfer & aXfer)
這個函式會針對指定的 BDXTransfer 傳送 BlockEOFAckV1 訊息。
SendBlockQuery(BDXTransfer & aXfer)
SendBlockQueryV1(BDXTransfer & aXfer)
這個函式會針對指定的 BDXTransfer 傳送 BlockQueryV1 訊息。
SendNextBlock(BDXTransfer & aXfer)
SendNextBlockV1(BDXTransfer & aXfer)
此函數通過呼叫 BDXTransfer's GetBlockHandler 發送下一個 BlockSendV1
SendStatusReport(ExchangeContext *anEc, uint32_t aProfileId, uint16_t aStatusCode)
void
傳送狀態報告訊息,其中包含相關的設定檔 ID、狀態碼和交換內容。
SendTransferError(ExchangeContext *anEc, uint32_t aProfileId, uint16_t aStatusCode)
void

函式

處理連線已關閉

void HandleConnectionClosed(
  ExchangeContext *anEc,
  WeaveConnection *aCon,
  WEAVE_ERROR aConErr
)

連線本身關閉時的處理常式。

呼叫相關的移轉處理常式,並關閉傳輸作業。

詳細資料
參數
[in] anEc
偵測到封閉連線的 Exchange 內容。我們可以從此處找到相關聯的 BDXTransfer
[in] aCon
Weave 連線 (實際函式中未使用)
[in] aConErr
與連線關閉相關的錯誤

處理金鑰錯誤

void HandleKeyError(
  ExchangeContext *anEc,
  WEAVE_ERROR aKeyErr
)

處理常式已用於加密及驗證 Weave 訊息的金鑰已無法使用。

詳細資料
參數
[in] anEc
Exchange 結構定義偵測到偵測到的錯誤。我們可以從這裡找到相關聯的 BDXTransfer
[in] aKeyErr
與該金鑰相關聯的錯誤已無法使用

回應回應

void HandleResponse(
  ExchangeContext *anEc,
  const IPPacketInfo *aPktInfo,
  const WeaveMessageInfo *aWeaveMsgInfo,
  uint32_t aProfileId,
  uint8_t aMessageType,
  PacketBuffer *aPacketBuffer
)

郵件送達 BDX 交換作業的主要處理常式。

基本上,它是路由器,用來擷取適當的 BDX 標頭資訊和資料,分派適當的處理常式來處理這個物件。

詳細資料
參數
[in] anEc
以脈絡資訊做為參考
[in] aPktInfo
未使用,但必須與函式原型相符
[in] aWeaveMsgInfo
郵件的訊息資訊
[in] aProfileId
定義訊息的設定檔 ID
[in] aMessageType
該設定檔的訊息類型
[in] aPacketBuffer
封裝郵件本身

無法處理回應

WEAVE_ERROR HandleResponseNotAccepted(
  BDXTransfer & aXfer,
  uint32_t aProfileId,
  uint8_t aMessageType,
  PacketBuffer *aPacketBuffer
)

回應回應接收

WEAVE_ERROR HandleResponseReceive(
  BDXTransfer & aXfer,
  uint32_t aProfileId,
  uint8_t aMessageType,
  PacketBuffer *aPacketBuffer
)

回應回應逾時

void HandleResponseTimeout(
  ExchangeContext *anEc
)

代表我們等待回應的處理常式。

關閉逾時的移轉,並呼叫移轉錯誤錯誤處理常式。

詳細資料
參數
[in] anEc
Exchange 背景資訊:我們會找出 BDXTransfer

回應回應傳輸

WEAVE_ERROR HandleResponseTransmit(
  BDXTransfer & aXfer,
  uint32_t aProfileId,
  uint8_t aMessageType,
  PacketBuffer *aPacketBuffer
)

處理傳送錯誤

void HandleSendError(
  ExchangeContext *anEc,
  WEAVE_ERROR aSendErr,
  void *aMsgCtxt
)

我們尚未確認的 WRMP 訊息處理處理常式。

詳細資料
參數
[in] anEc
含有未確認訊息的 Exchange 內容。這裡會顯示相關聯的 BDXTransfer
[in] aSendErr
與郵件傳送失敗相關的錯誤
[in] aMsgCtxt
與未經確認訊息相關聯的任意訊息內容。

InitBdx 接收

WEAVE_ERROR InitBdxReceive(
  BDXTransfer & aXfer,
  bool aICanDrive,
  bool aUCanDrive,
  bool aAsyncOk,
  ReferencedTLVData *aMetaData
)

InitBdxSend

WEAVE_ERROR InitBdxSend(
  BDXTransfer & aXfer,
  bool aICanDrive,
  bool aUCanDrive,
  bool aAsyncOk,
  ReferencedTLVData *aMetaData
)

InitBdxSend

WEAVE_ERROR InitBdxSend(
  BDXTransfer & aXfer,
  bool aICanDrive,
  bool aUCanDrive,
  bool aAsyncOk,
  SendInit::MetaDataTLVWriteCallback aMetaDataWriteCallback,
  void *aMetaDataAppState
)

SendBadBlockCounterStatusReport

WEAVE_ERROR SendBadBlockCounterStatusReport(
  BDXTransfer & aXfer
)

傳送方塊 A1

WEAVE_ERROR SendBlockAckV1(
  BDXTransfer & aXfer
)

這個函式會針對指定的 BDXTransfer 傳送 BlockAckV1 訊息。

已確認的區塊編號等於 aXfer.mBlockCounter - 1,因為這個函式只能在下一個計數器的傳輸狀態之後呼叫。

詳細資料
參數
[in] aXfer
我們為 BDXTransfer 傳送 BlockAck
傳回值
WEAVE_NO_ERROR
成功送出訊息。
WEAVE_ERROR_NO_MEMORY
如果沒有可用的 PacketBuffers,

SendBlockEOFAckV1

WEAVE_ERROR SendBlockEOFAckV1(
  BDXTransfer & aXfer
)

這個函式會針對指定的 BDXTransfer 傳送 BlockEOFAckV1 訊息。

已確認的區塊編號等於 aXfer.mBlockCounter。

詳細資料
參數
[in] aXfer
BDXTransfer 寄出的是 BlockEOFAck
傳回值
WEAVE_NO_ERROR
成功送出訊息。
WEAVE_ERROR_NO_MEMORY
如果沒有可用的 PacketBuffers,

傳送區塊查詢

WEAVE_ERROR SendBlockQuery(
  BDXTransfer & aXfer
)

傳送區塊查詢 1

WEAVE_ERROR SendBlockQueryV1(
  BDXTransfer & aXfer
)

這個函式會針對指定的 BDXTransfer 傳送 BlockQueryV1 訊息。

所要求的區塊編號等於 aXfer.mBlockCounter。

詳細資料
參數
[in] aXfer
我們為 BDXTransfer 傳送的 BlockQuery
傳回值
WEAVE_NO_ERROR
成功送出訊息。
WEAVE_ERROR_NO_MEMORY
如果沒有可用的 PacketBuffers,

傳送下一個區塊

WEAVE_ERROR SendNextBlock(
  BDXTransfer & aXfer
)

傳送下一個區塊 1

WEAVE_ERROR SendNextBlockV1(
  BDXTransfer & aXfer
)

此函數通過呼叫 BDXTransfer's GetBlockHandler 發送下一個 BlockSendV1

詳細資料
參數
[in] aXfer
系統會呼叫 BDXTransfer,讓其呼叫 GetBlockHandler,然後再使用相關的 ExchangeContext 傳送下一個區塊
傳回值
WEAVE_ERROR_INCORRECT_STATE
如果 GetBlockHandler 為 NULL

傳送狀態報告

void SendStatusReport(
  ExchangeContext *anEc,
  uint32_t aProfileId,
  uint16_t aStatusCode
)

傳送狀態報告訊息,其中包含相關的設定檔 ID、狀態碼和交換內容。

詳細資料
參數
[in] anEc
狀態報告訊息中應傳送的 Exchange 背景資訊
[in] aProfileId
設定檔 ID
[in] aStatusCode
與轉移錯誤相關的代碼

傳送轉移錯誤

void SendTransferError(
  ExchangeContext *anEc,
  uint32_t aProfileId,
  uint16_t aStatusCode
)