nl::Weave::Profiles::BDX_Development

この名前空間には、現在開発中で本番環境で使用すべきではない Bulk Data Transfer(BDX)プロファイル用の Weave 内のすべてのインターフェースが含まれます。

概要

列挙型

@80 enum
@81 enum
@82 enum
@83 enum

Typedef

BdxClient typedef
BdxServer typedef
ErrorHandler)(BDXTransfer *aXfer, WEAVE_ERROR anErrorCode) typedef
void(*
このハンドラは、エラーコードを介してユーザー アプリケーション定義の制御フローに直接返せない Weave エラーが発生するたびに呼び出されます。
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

エラー メッセージは、エラーの報告と交換の中止に使用されます。

構造体

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

Typedef

BdxClient

BdxNode BdxClient

BdxServer

BdxNode BdxServer

ErrorHandler

void(* ErrorHandler)(BDXTransfer *aXfer, WEAVE_ERROR anErrorCode)

このハンドラは、エラーコードを介してユーザー アプリケーション定義の制御フローに直接返せない Weave エラーが発生するたびに呼び出されます。

つまり、シグネチャの戻り値の型が void の別のハンドラ内でエラーが発生した場合(たとえば、受信した 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 が true の場合、この処理にはファイルへの書き込みと、そのファイルの終了処理が含まれる可能性があります。

詳細
パラメータ
[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->mIsAccepted=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->mIsAccepted=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() を呼び出すかどうかは、アプリケーション プログラマーとそれが定義するコールバックに委ねられます。TODO: これを確認し、BDX ドキュメントの言語と照合します。「[A TransferError] どちらの当事者も、時期尚早に 一括データ転送を終了します。」

詳細
パラメータ
[in] aXfer
この転送に関連付けられた BDXTransfer へのポインタ
[in] aXferError
処理中の StatusReport メッセージ エラーへのポインタ

関数

GetBDXAckFlag

uint16_t GetBDXAckFlag(
  ExchangeContext *anEc
)

GetBDXAckFlag は、交換コンテキストの接続(TCP の場合はリクエスト確認応答なし)や WRMP のコンパイル時サポートに応じて RequestAck フィールドに適切なフラグを返します。

詳細
パラメータ
[in] anEc
フラグを取得するエクスチェンジのコンテキスト
戻り値
0 または kSendFlag_RequestAck