定数
| [メニュー] |
|
解説 チャンクを供給するラインを意味します。
|
| [メニュー] |
|
解説 SJ_ERR_OKの値は0で、その他のエラーコードは負の値となります。
|
| [メニュー] |
|
解説 汎用型ストリームジョイントを生成する時のパラメータです。SJ_PutChunk関数でデータチャンクを供給したときに結合するか否かを決めます。
|
処理マクロ
| [メニュー] |
|
書式 int SJUNI_CALC_WORK(nck); 入力 nck : チャンク数 出力 なし 戻り値 作業領域の大きさ [byte] 説明 汎用型ストリームジョイントの作業領域の大きさを計算します。 |
データ型
| [メニュー] |
|
解説 空間的にも時間的にも一意に定義されるライブラリ識別子。Visual C++に付属のUUIDGEN.EXEなどを実行するとコードが得られるので、これを以下のメンバーに従って各ライブラリ内で定義しています。
用例 C:\>uuidgen 211b2800-a6a9-11d1-8f3f-0060089448bc #define SmD_LID { \ 0x211b2800, 0xa6a9, 0x11d1, 0x8f, 0x3f, 0x00, 0x60, 0x08, 0x94, 0x48, 0xbc\ }\ |
| [メニュー] |
|
解説 ストリームジョイントを制御するためのハンドルです。 |
| [メニュー] |
関数
| [メニュー] |
| [メニュー] |
| [メニュー] |
|
書式 void SJ_GetChunk(SJ sj, Sint32 id, Sint32 nbyte, SJCK *ck); 入力 sj :ストリームジョイント id :チャンク入出力ID(SJ_LIN_DATA/SJ_LIN_FREE) nbyte :要求データ量(単位:バイト) 出力 ck :データチャンク(データの先頭アドレス/サイズ) 戻り値 なし 説明 バッファに対して書き込みや読み出しを行う時に、ストリームジョイントから読み書き可能な領域(データチャンク)を取得する。 |
| [メニュー] |
|
書式 void SJ_UngetChunk(SJ sj, Sint32 id, SJCK *ck); 入力 sj :ストリームジョイント id :チャンク入出力ID(SJ_LIN_DATA/SJ_LIN_FREE) ck :データチャンク(データの先頭アドレス/サイズ) 出力 なし 戻り値 なし 説明 取得したデータチャンクに対して、書き込みや読み出しを実際に行えなかった時に、読み書きできなかった領域(データチャンク)をストリームジョイントに戻す。 |
| [メニュー] |
|
書式 void SJ_PutChunk(SJ sj, Sint32 id, SJCK *ck); 入力 sj :ストリームジョイント id :チャンク入出力ID(SJ_LIN_DATA/SJ_LIN_FREE) ck :データチャンク(データの先頭アドレス/サイズ) 出力 なし 戻り値 なし 説明 取得したデータチャンクに対して、書き込みや読み出しを実際に行った時に、読み書きできた領域(データチャンク)をストリームジョイントに渡す。 |
| [メニュー] |
|
書式 Sint32 SJ_GetNumData(SJ sj, Sint32 id); 入力 sj :ストリームジョイント id :チャンク入出力ID(SJ_LIN_DATA/SJ_LIN_FREE) 出力 なし 戻り値 読み書き可能なデータ容量(単位:バイト) ・書き込む場合:空き容量 ・読み出す場合:データ容量 説明 ストリームジョイントにデータを書き込む場合は、バッファの空き容量を取得し、読み出す場合は、バッファのデータ容量を取得する。 |
| [メニュー] |
| [メニュー] |
|
書式 void SJ_EntryErrFunc(SJ sj, void (*func)(void *obj, Sint32 ecode), void *obj); 入力 sj :ストリームジョイント func:エラー発生時に呼び出される関数 obj :func関数の第1引数 出力 なし 戻り値 なし 説明 エラーが発生した時に呼び出される関数を登録する。 funcにNULLを設定すると、エラー処理関数が未登録になる。 |
| [メニュー] |
|
書式 void SJ_SplitChunk(SJCK *ck, Sint32 nbyte, SJCK *ck1, SJCK *ck2); 入力 ck :分解対象となるデータチャンク nbyte :ck1 のサイズ(単位:バイト) 出力 ck1 :分解された前半のデータチャンク ck2 :分解された後半のデータチャンク 戻り値 データチャンクck2のサイズ(単位:バイト) 説明 データチャンクckを2つのデータチャンクck1とck2に分解する。 ck1は、nbyte の長さになる。ck1のサイズがnbyteに満たない場合は分解されず、ck1にckが代入され、ck2のサイズは0となる。ck1とckは、同じものを指定しても良い。 用例 SJ_SplitChunk(&ck, 100, &ck, &ck2); |
| [メニュー] |
| [メニュー] |
|
書式 SJ SJRBF_Create(Sint8 *buf, Sint32 bsize, Sint32 xsize); 入力 buf :リングバッファ bsize :リングバッファのサイズ(単位:バイト) xsize :エキストラバッファサイズ(単位:バイト) 出力 なし 戻り値 ストリームジョイント 説明 リングバッファタイプのストリームジョイントを生成する。 引数bufには、bsize+xsizeで確保したバッファを指定します。 |
| [メニュー] |
| [メニュー] |
|
書式 SJ SJMEM_Create(Sint8 *data, Sint32 bsize); 入力 data :データ領域 bsize :データサイズ(単位:バイト) 出力 なし 戻り値 ストリームジョイント 説明 メモリタイプのストリームジョイントを生成する。 |
| [メニュー] |
| [メニュー] |
|
書式 SJ SJUNI_Create(Sint32 mode, Sint8 *work, Sint32 wksize); 入力 mode :結合モード (SJUNI_MODE_SEPA, SJUNI_MODE_JOIN) work :作業領域 wksize :作業領域のサイズ 出力 なし 戻り値 ストリームジョイント 説明 汎用タイプのストリームジョイントを生成する。 データチャンクを分離したまま扱う場合は、SJUNI_MODE_SEPAを指定し、データチャンクを結合する場合は、SJUNI_MODE_JOINを指定する。 ストリームジョイントの扱う最大データチャンク数より作業領域を確保し、workとwksizeに引数として渡す。 用例 #define MAX_NCK (256) Sint8 work[SJUNI_CALC_WORK(MAX_NCK)]; sj = SJUNI_Create(SJUNI_MODE_SEPA, work, sizeof(work)); |