WBTPrepareSendDataCallback

定義

#include <nitro/wbt.h>

typedef	struct
{
	u32 block_id;
	s32 block_seq_no; 
	void *data_ptr;
	s16 own_packet_size;
	u16 padd;
} WBTPrepareSendDataCallback;

説明

WBT_RegisterBlock( )でデータバッファを指定しなかった場合のコールバックで渡される構造体です。

各メンバの内容は以下の通りです。
block_id 要求されているブロックIDです。
block_seq_no 要求されているシーケンス番号です。
data_ptr データバッファを指定するポインタです。
own_packet_size シーケンス番号の単位となるパケットサイズです。

ユーザは、任意のシーケンス番号 N について
N * own_packet_size バイトの位置から own_packet_size バイト分のデータをすでに準備している場合、
コールバックの中で block_seq_no に N を代入し、data_ptr に該当バッファを指定します。
ただちに応答できるシーケンス番号が何もない場合は data_ptr に NULL を代入します。
指定したバッファはコールバックの呼び出し元でただちにコピーされるので、保持しておく必要はありません。

WBTライブラリは、ユーザコールバックに対して
「前回の要求番号が今回準備され、今回の要求番号が次回までに準備される」
という流れにおいて効率良く処理が進むように順次シーケンス番号を要求します。

参照

履歴

2004/09/21 初版