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 メッセージの 1 つが宛先によって拒否された場合に呼び出されます。
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 転送を表すデータメンバーが含まれます。

Namespace

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 メッセージを受信したときに呼び出されるコールバック。

その役割は、受信を受け入れるかどうかを決定することです。受け入れる場合は、aXfer->mIsAccepted=true を設定して、プロトコルがイニシエータに承認メッセージを送信します。BDXTransfer オブジェクトがデフォルト設定で開始されます。これは、アプリ固有の状態(オープン ファイル ハンドルなど)を aXfer->mAppState にアタッチするのに適しています。また、この時点で、ブロック処理などに必要なハンドラを BDXTransfer オブジェクトにアタッチする必要があります。kStatus_Success 以外のエラーコードが返された場合、転送は拒否されたとみなされ、プロトコルがそのコードを含む拒否メッセージの送信を処理します。

詳細
パラメータ
[in] aXfer
この転送に関連付けられている BDXTransfer へのポインタ
[in] aReceiveInitMsg
処理中の ReceiveInit メッセージへのポインタ

RejectHandler

void(* RejectHandler)(BDXTransfer *aXfer, StatusReport *aReport)

前の Init メッセージの 1 つが宛先によって拒否された場合に呼び出されます。

詳細
パラメータ
[in] aXfer
この転送に関連付けられている BDXTransfer へのポインタ
[in] aReport
Google が処理している 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] Can be send an when any party to prematurely ending data transfer」という内容で調整します。

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

関数

GetBDXAckFlag

uint16_t GetBDXAckFlag(
  ExchangeContext *anEc
)

GetBDXAckFlag は、交換コンテキストの接続(TCP に対するリクエスト確認応答なし)と WRMP のコンパイル時サポートに基づいて、RequestAck フィールドに適切なフラグが返されます。

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