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
終了した接続を検出したエクスチェンジのコンテキスト。関連する 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
BlockAck を送信する BDXTransfer
戻り値
WEAVE_NO_ERROR
メッセージが正常に送信されたかどうかを確認します。
WEAVE_ERROR_NO_MEMORY
使用可能な PacketBuffer がない場合。

SendBlockEOFAckV1

WEAVE_ERROR SendBlockEOFAckV1(
  BDXTransfer & aXfer
)

この関数は、指定された BDXTransfer に対して BlockEOFAckV1 メッセージを送信します。

確認応答済みブロック番号が aXfer.mBlockCounter と等しい。

詳細
パラメータ
[in] aXfer
BlockEOFAck を送信する BDXTransfer
戻り値
WEAVE_NO_ERROR
メッセージが正常に送信されたかどうかを確認します。
WEAVE_ERROR_NO_MEMORY
使用可能な PacketBuffer がない場合。

SendBlockQuery

WEAVE_ERROR SendBlockQuery(
  BDXTransfer & aXfer
)

SendBlockQueryV1

WEAVE_ERROR SendBlockQueryV1(
  BDXTransfer & aXfer
)

この関数は、指定された BDXTransfer に対して BlockQueryV1 メッセージを送信します。

リクエストされたブロック番号が aXfer.mBlockCounter と等しい。

詳細
パラメータ
[in] aXfer
BlockQuery を送信する BDXTransfer
戻り値
WEAVE_NO_ERROR
メッセージが正常に送信されたかどうかを確認します。
WEAVE_ERROR_NO_MEMORY
使用可能な PacketBuffer がない場合。

SendNextBlock

WEAVE_ERROR SendNextBlock(
  BDXTransfer & aXfer
)

SendNextBlockV1

WEAVE_ERROR SendNextBlockV1(
  BDXTransfer & aXfer
)

この関数は、BDXTransfer の GetBlockHandler を呼び出して取得した次の BlockSendV1 を送信します。

詳細
パラメータ
[in] aXfer
次のブロックを取得するために GetBlockHandler が呼び出され、関連する ExchangeContext を使用して次のブロックを取得する BDXTransfer
戻り値
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
)