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

摘要

函式

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 的 GetBlockHandler 來傳送下一個擷取的 BlockSendV1
SendStatusReport(ExchangeContext *anEc, uint32_t aProfileId, uint16_t aStatusCode)
void
傳送狀態報告訊息,其中包含相關聯的設定檔 ID、狀態碼和廣告交易平台背景資訊。
SendTransferError(ExchangeContext *anEc, uint32_t aProfileId, uint16_t aStatusCode)
void

函式

HandleConnectionClosed

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

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

呼叫關聯移轉的錯誤處理常式,並關閉傳輸。

詳細說明
參數
[in] anEc
Exchange 內容偵測到連線關閉的情形。我們可以從這裡找到相關聯的 BDXTransfer
[in] aCon
實際函式中未使用的 Weave 連線
[in] aConErr
與關閉連線相關的錯誤

HandleKeyError

void HandleKeyError(
  ExchangeContext *anEc,
  WEAVE_ERROR aKeyErr
)

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

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

HandleResponse

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
包裝訊息本身

HandleResponseNotAccepted

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

HandleResponseReceive

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

HandleResponseTimeout

void HandleResponseTimeout(
  ExchangeContext *anEc
)

等待回應逾時時的處理常式。

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

詳細說明
參數
[in] anEc
這是指可找出 BDXTransfer 的廣告交易平台結構定義,

HandleResponseTransmit

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

HandleSendError

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

我們傳送的 WRMP 訊息未確認時的處理常式。

詳細說明
參數
[in] anEc
Exchange 結構定義包含未經確認的訊息。我們可以從這個目錄找出相關聯的 BDXTransfer
[in] aSendErr
與訊息傳送失敗相關的錯誤
[in] aMsgCtxt
與未確認訊息相關聯的任意訊息內容。

InitBdxReceive

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
)

SendBlockAckV1

WEAVE_ERROR SendBlockAckV1(
  BDXTransfer & aXfer
)

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

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

詳細說明
參數
[in] aXfer
我們會傳送 BlockAckBDXTransfer
傳回值
WEAVE_NO_ERROR
如果我們成功傳送郵件
WEAVE_ERROR_NO_MEMORY
如果沒有可用的 PacketBuffers。

SendBlockEOFAckV1

WEAVE_ERROR SendBlockEOFAckV1(
  BDXTransfer & aXfer
)

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

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

詳細說明
參數
[in] aXfer
我們會傳送 BlockEOFAckBDXTransfer
傳回值
WEAVE_NO_ERROR
如果我們成功傳送郵件
WEAVE_ERROR_NO_MEMORY
如果沒有可用的 PacketBuffers。

SendBlockQuery

WEAVE_ERROR SendBlockQuery(
  BDXTransfer & aXfer
)

SendBlockQueryV1

WEAVE_ERROR SendBlockQueryV1(
  BDXTransfer & aXfer
)

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

要求的封鎖號碼等於 aXfer.mBlockCounter。

詳細說明
參數
[in] aXfer
我們會傳送 BlockQueryBDXTransfer
傳回值
WEAVE_NO_ERROR
如果我們成功傳送郵件
WEAVE_ERROR_NO_MEMORY
如果沒有可用的 PacketBuffers。

SendNextBlock

WEAVE_ERROR SendNextBlock(
  BDXTransfer & aXfer
)

SendNextBlockV1

WEAVE_ERROR SendNextBlockV1(
  BDXTransfer & aXfer
)

此函式會呼叫 BDXTransfer 的 GetBlockHandler 來傳送下一個擷取的 BlockSendV1

詳細說明
參數
[in] aXfer
呼叫 GetBlockHandler 的 BDXTransfer 後,會先呼叫該區塊來取得下一個區塊,再使用相關聯的 ExchangeContext
傳回值
WEAVE_ERROR_INCORRECT_STATE
如果 GetBlockHandler 為 NULL

SendStatusReport

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

傳送狀態報告訊息,其中包含相關聯的設定檔 ID、狀態碼和廣告交易平台背景資訊。

詳細說明
參數
[in] anEc
我們應傳送狀態報表訊息的廣告交易平臺情況
[in] aProfileId
設定檔 ID
[in] aStatusCode
與轉移錯誤相關聯的代碼

SendTransferError

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