Converterライブラリには、C言語インタフェースとJavaインタフェースがあります。アプリケーションのプログラム言語に応じて選択してください。C言語インタフェースについては、“4.1 C言語インタフェース”を、Javaインタフェースについては、“4.2 Javaインタフェース”を参照してください。
C言語インタフェースの場合
アプリケーションに、以下の呼び出しフローを組み込みます。
図2.8 C言語インタフェースの呼び出しフロー
[]内の関数は、必要に応じて呼び出します。
マルチスレッドでコード変換をする場合には、以下のようなフローになります。
図2.9 C言語インタフェースの呼び出しフロー(マルチスレッドの場合)
コード変換開始関数で生成されるコード変換プロパティ情報は、複数スレッド間で共有することができます。
複数のコード変換ポリシーを同時に用いる場合は、コード変換開始関数をそれぞれのポリシーごとに呼び出してください。
ストリーム情報はコード変換処理時に更新されるため、スレッド間で共有しないでください。
注意
コード変換開始関数およびコード変換ポリシー設定関数は、変換定義情報を構築するため、処理コストがかかります。これら関数は、呼び出し回数を抑えるよう設計してください。
Javaインタフェースの場合
アプリケーションに、以下の呼び出しフローを組み込みます。
図2.10 Javaインタフェースの呼び出しフロー
マルチスレッドでコード変換をする場合、ConversionPolicyクラスのインスタンスは、スレッド間で共有できます。Converterクラスのインスタンスは、各スレッドで生成してください。
注意
ConversionPolicyクラスおよびConverterクラスは、変換定義情報を構築するため、処理コストがかかります。これらクラスは、インスタンス生成回数を抑えるよう設計してください。
注意
Charset Converterでは、処理できるデータサイズに制限はありません。ただし、文字数、バイト数のカウントに関する変数にそれぞれ上限値があり、これを超えた場合は正しいカウント値を得られなくなります。
文字数、バイト数のカウントに関する変数は以下のとおりです。
“4.1.3 charsetmanager_converter_convert”のindata_processed、outdata_processed、および、error_status内のerrorStringIndex(int型の範囲)
“4.1.8 charsetmanager_converter_get_statistics”の返却値(size_t型の範囲)
“4.2.5 Converter.Statisticsクラス”のgetCountメソッドの返却値。(long型の範囲)