5 XML C用のOrastream APIパッケージ
Orastream
APIは、XML文書での64Kを超えるテキスト・ノードおよびバイナリ・ノードの処理をサポートします。
Orastream
で使用されるデータ型は「Cのデータ型」に記載されています。oracheck、oraerr、oraprop_id、oramemctx、oraprop、oraprop_t、oraprop_v、orastreamおよびorastreamhdlが含まれます。
Orastream
インタフェースのエラー・コードを表5-1に示します。
表5-1 XML C実装のOrastreamエラー・コード
エラー・コード | 説明 |
---|---|
|
Nullポインタが検出されました。 |
|
無効なストリーム・オブジェクト。 |
|
ストリーム・オブジェクトは反対のI/O方向に定義されています。 |
|
不明な作成プロパティ。 |
|
ストリームのI/O方向が定義されていません。 |
|
ストリームの方向は、両方のI/O方向を使用していると間違って定義されています。 |
|
ストリームはオープンしていません。 |
|
ストリームは反対のchar/byteモードに定義されています。 |
|
ストリームをオープンできません。 |
|
ストリームをクローズできません。 |
次の表に示すOrastream
メソッドは、データのピース単位の移動に使用する一方向のストリームをサポートします。ストリームの方向およびモードは、OraStreamInit()メソッドでストリームを初期化するパラメータによって決定されます。
表5-2 XML C実装のOraStreamメソッドの概要
関数 | 概要 |
---|---|
ストリームをクローズします。 |
|
ストリームにハンドルを戻します。 |
|
ストリームを初期化します。 |
|
ストリームがオープンしているかどうかを判断します。 |
|
ストリームをオープンします。 |
|
ストリームからバイトを読み込みます。 |
|
ストリームが読取り可能かどうかを判断します。 |
|
ストリームから文字を読み込みます。 |
|
ストリームのSIDを設定します。 |
|
ストリームを破棄します。 |
|
ストリームにバイトを書き込みます。 |
|
ストリームが書込み可能かどうかを判断します。 |
|
ストリームに文字を書き込みます。 |
5.1 OraStreamClose()
orastream
オブジェクトをクローズします。
この関数を使用し、ストリームの「クローズ」コールバック関数をコールして、特定のストリームをクローズします。
成功した場合はORAERR_OK
を戻し、失敗した場合はエラー・コードを戻します。
構文
oraerr OraStreamClose( orastream *stream);
パラメータ | In/Out | 説明 |
---|---|---|
stream |
IN |
クローズされるストリーム |
5.2 OraStreamHandle()
orastream
オブジェクトのハンドルを戻します。
ハンドルには、汎用ポインタとファイル記述子が含まれます。
構文
orastreamhdl *OraStreamHandle( orastream *stream);
パラメータ | In/Out | 説明 |
---|---|---|
stream |
IN |
ハンドルが戻されるストリーム |
5.3 OraStreamInit()
orastream
オブジェクトを作成して初期化します。
構文
orastream *OraStreamInit(
void *sctx,
void *sid,
oraerr *err,
list);
パラメータ | In/Out | 説明 |
---|---|---|
sctx |
IN |
入力コンテキスト。 |
sid |
IN |
ユーザー定義のストリーム・コンテキスト識別子 |
err |
OUT |
エラー(存在する場合)。成功した場合は |
list |
IN |
新しい
|
5.4 OraStreamIsOpen()
orastream
がオープンしているかどうかを判断します。TRUE
またはFALSE
を返します。
読込みおよび書込み操作を実行するには、ストリームがオープンしている必要があります。
構文
boolean OraStreamIsOpen( orastream *stream);
パラメータ | In/Out | 説明 |
---|---|---|
stream |
IN |
読込みまたは書込みのためにオープンする必要のあるストリーム。 |
5.5 OraStreamOpen()
orastream
オブジェクトをオープンします。
この関数は、ストリームの「オープン」コールバック関数をコールしてストリームをオープンします。
成功した場合はORAERR_OK
を戻し、失敗した場合はエラー・コードを戻します。
構文
oraerr OraStreamOpen( orastream *stream, ubig_ora *length)
パラメータ | In/Out | 説明 |
---|---|---|
stream |
IN |
オープンしているストリーム |
length |
OUT |
オプションのパラメータ。使用されません |
5.6 OraStreamRead()
orastream
オブジェクトからbyte
を読み込みます。
この関数を使用して、ストリームから指定されたバッファにデータを読み込みます。また、ストリームの終わりに達すると、eoi
パラメータにTRUE
を戻します。
成功した場合はORAERR_OK
を戻し、失敗した場合はエラー・コードを戻します。
構文
oraerr OraStreamRead( orastream *stream, oratext *dest, ubig_ora size, oratext **start, ubig_ora *nread, ub1 *eoi);
パラメータ | In/Out | 説明 |
---|---|---|
stream |
IN |
読み込まれるストリーム |
dest |
IN |
宛先バッファ |
size |
IN |
読み込まれるデータのサイズ |
start |
OUT |
読み込まれるデータの先頭へのポインタ |
nread |
OUT |
ストリームから実際に読み込まれたバイト数 |
eoi |
OUT |
ストリームの終わりに達すると |
5.7 OraStreamReadable()
既存のorastream
オブジェクトが読込み可能かどうかを判断します。
TRUE
またはFALSE
を返します。
構文
boolean OraStreamReadable( orastream *stream);
パラメータ | In/Out | 説明 |
---|---|---|
stream |
IN |
読込み可能かどうかを確認するストリーム |
5.8 OraStreamReadChar()
orastream
オブジェクトからchar
を読み込みます。
この関数を使用して、ストリームから指定されたバッファにデータを読み込みます。また、ストリームの終わりに達すると、eoi
パラメータにTRUE
を戻します。
成功した場合はORAERR_OK
を戻し、失敗した場合はエラー・コードを戻します。
構文
oraerr OraStreamReadChar( orastream *stream, oratext *dest, ubig_ora size, oratext **start, ubig_ora *nread, ub1 *eoi);
パラメータ | In/Out | 説明 |
---|---|---|
stream |
IN |
読み込まれるストリーム |
dest |
IN |
宛先バッファ |
size |
IN |
読み込まれるデータのサイズ |
start |
OUT |
読み込まれるデータの先頭へのポインタ |
nread |
OUT |
ストリームから実際に読み込まれた文字数 |
eoi |
OUT |
ストリームの終わりに達すると |
5.9 OraStreamSid()
既存のorastream
オブジェクトにSIDを割り当てます。OUT
パラメータosid
を使用してSIDを戻します。
成功した場合はORAERR_OK
を戻し、失敗した場合はエラー・コードを戻します。
構文
oraerr OraStreamSid( orastream *stream, void *sid, void **osid);
パラメータ | In/Out | 説明 |
---|---|---|
stream |
IN |
SIDが変更されるストリーム |
sid |
IN |
新しいSID |
osid |
OUT |
ストリームの前のSID |
5.10 OraStreamTerm()
orastream
オブジェクトを破棄して、対応するメモリーを解放します。
成功した場合はORAERR_OK
を戻し、失敗した場合はエラー・コードを戻します。
構文
oraerr OraStreamTerm( orastream *stream);
パラメータ | In/Out | 説明 |
---|---|---|
stream |
IN |
破棄するストリーム |
5.11 OraStreamWrite()
orastream
オブジェクトにbyte
を書き込みます。
実際に読み込まれたバイト数は、OUT
パラメータnwrote
によって格納されます。
成功した場合はORAERR_OK
を戻し、失敗した場合はエラー・コードを戻します。
構文
oraerr OraStreamWrite( orastream *stream, oratext *src, ubig_ora size, ubig_ora *nwrote);
パラメータ | In/Out | 説明 |
---|---|---|
stream |
IN |
データが書き込まれるストリーム |
src |
IN |
データの書込み元バッファ |
size |
IN |
書き込まれるデータのサイズ |
nwrote |
OUT |
ストリームに書き込まれるバイト数 |
5.12 OraStreamWritable()
既存のorastream
オブジェクトが書込み可能かどうかを判断します。
TRUE
またはFALSE
を返します。
構文
boolean OraStreamWritable( orastream *stream);
パラメータ | In/Out | 説明 |
---|---|---|
stream |
IN |
書込み可能かどうかを判断するストリーム。 |
5.13 OraStreamWriteChar()
orastream
オブジェクトにchar
を書き込みます。
実際に書き込まれた文字数は、OUT
パラメータnwrote
によって格納されます。
成功した場合はORAERR_OK
を戻し、失敗した場合はエラー・コードを戻します。
構文
oraerr OraStreamWriteChar( orastream *stream, oratext *src, ubig_ora size, ubig_ora *nwrote);
パラメータ | In/Out | 説明 |
---|---|---|
stream |
IN |
データが書き込まれるストリーム |
src |
IN |
データの書込み元バッファ |
size |
IN |
書き込まれるデータのサイズ |
nwrote |
OUT |
ストリームに書き込まれる文字数 |