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)
這個函式會傳送下一個 BlockSendV1,藉由呼叫 BDXTransfer 的 GetBlockHandler。
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
偵測到已中斷連線連線的廣告交易平台內容,我們可以在此找到相關聯的 BDXTransfer
[in] aCon
實際函式中未使用的 Weave 連線
[in] aConErr
與關閉連線相關的錯誤

HandleKeyError

void HandleKeyError(
  ExchangeContext *anEc,
  WEAVE_ERROR aKeyErr
)

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

詳細資料
參數
[in] anEc
如果廣告交易平台內容偵測到重大錯誤,我們可以在這個區塊中找到相關聯的 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
訊息的 Weave 訊息資訊
[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
廣告交易平台內容出現未確認的訊息:我們可以找出與這封郵件相關聯的 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
我們傳送的 BDXTransferBlockAck
傳回值
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
)

這個函式會傳送下一個 BlockSendV1,藉由呼叫 BDXTransfer 的 GetBlockHandler。

詳細資料
參數
[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
)