呼び出し形式
void charsetmanager_converter_set_indata_status_ivs( charsetmanager_converter_stream_status_ptr cssp, const charsetmanager_converter_indata_status_ivs * indata_status, int *error );
機能説明
変換元データ状態設定関数(IVS)です。
コード変換ポリシー定義ファイルのSourceConverterKeywordキーワードに”Unicode(UCS4_IVS)”を指定した場合に、コード変換関数(4.1.3 charsetmanager_converter_convert)の変換元データ(indata)の状態を設定します。
コード変換ポリシー定義ファイルのSourceConverterKeywordキーワードに”Unicode(UCS4_IVS)”以外を指定した場合、本関数の設定は無視されます。
パラメタ
ストリーム情報格納域のポインタを指定します。ストリーム情報生成関数(“4.1.5 charsetmanager_converter_stream_open_status”)の復帰値を指定します。
変換元データの状態を設定する領域のポインタを指定します。
typedef struct { int version; int indataFollow; /* 後続するデータの有無 */ } charsetmanager_converter_indata_status_ivs;
versionには1を設定してください。
indataFollowに指定できる値は以下のとおりです。
なお、本APIを呼び出さない場合は、CHARSETMANAGER_CONVERTER_INDATA_LASTが指定されたと解釈します。
値 | 意味 |
---|---|
CHARSETMANAGER_CONVERTER_INDATA_LAST | 変換元データ(indata)に、後続するデータが存在しない(データの終端である)場合に指定します。 |
CHARSETMANAGER_CONVERTER_INDATA_CONTINUE | 変換元データ(indata)に、後続するデータが存在する場合に指定します。 |
SourceConverterKeywordキーワードに”Unicode(UCS4_IVS)”を指定した場合、indataFollowに設定する値によって、以下のようにコード変換関数(“4.1.3 charsetmanager_converter_convert”)の動作が変わります。
CHARSETMANAGER_CONVERTER_INDATA_LASTを指定した場合
変換元データの終端の状態 | コード変換関数の動作 | コード変換関数の詳細エラー情報のstatusに設定される値 |
---|---|---|
基底文字 | 基底文字として変換する。 | なし |
基底文字の途中で切れた文字コード | 基底文字の直前まで変換する。 | CHARSETMANAGER_CONVERTER_STATUS_UNDECODABLE_AT_END_OF_BUFFER |
基底文字+途中で切れた文字コード(注) | 基底文字まで変換する。 | CHARSETMANAGER_CONVERTER_STATUS_UNDECODABLE_AT_END_OF_BUFFER |
基底文字+VS | IVSとして変換する。 | なし |
CHARSETMANAGER_CONVERTER_INDATA_ CONTINUEを指定した場合
変換元データの終端の状態 | コード変換関数の動作 | コード変換関数の詳細エラー情報のstatusに設定される値 |
---|---|---|
基底文字 | 基底文字の直前まで変換する。 | CHARSETMANAGER_CONVERTER_STATUS_UNSPECIFIED_AT_END_OF_BUFFER |
基底文字の途中で切れた文字コード | 基底文字の直前まで変換する。 | CHARSETMANAGER_CONVERTER_STATUS_UNDECODABLE_AT_END_OF_BUFFER |
基底文字+途中で切れた文字コード(注) | 基底文字の直前まで変換する。 | CHARSETMANAGER_CONVERTER_STATUS_UNSPECIFIED_AT_END_OF_BUFFER |
基底文字+VS | IVSとして変換する。 | なし |
(注)「途中で切れた文字コード」がUTF-32の”0000”のように、0面であることが確定していて、VSになり得ない文字コードの場合も含みます。
本APIで設定した値は、次に本APIを呼び出すか、ストリーム情報解放関数(“4.1.7 charsetmanager_converter_stream_close_status”)を呼び出すまで有効となります。
エラー番号を返却する領域のポインタを指定します。本ポインタがNULLの場合、処理を中断します。関数が正常終了した場合には0が返却され、エラー終了時には1以上の詳細エラー番号が返却されます。エラー番号については、“表4.1 エラー番号一覧”を参照してください。
復帰値
ありません。