4.4.3 FMLバッファ・タイプを使用する
FML (フィールド操作言語)は、型付きバッファとして使用できる柔軟性のあるデータ構造です。FMLは、タグ付きの値を格納するデータ構造です。このタグ付きの値には型が付いており、長さを変更することができ、複数のオカレンスを持つ場合があります。FMLでは、型付きバッファを抽象的なデータ型として扱います。
FML操作を用いると、データ構造やデータの格納方法を知らなくても、データに対してアクセスしたり、更新を行うことができます。アプリケーション・プログラムでは、単に識別子を使ってフィールド化されたバッファのフィールドにアクセスしたり更新するだけで済みます。操作の実行時には、FMLのランタイム・システムによってフィールドの場所と操作を行うデータ型が決定されます。
FMLは、クライアントとサーバーがそれぞれ別のコード(Java言語とCなど)で記述されている場合、プラットフォームで扱われるデータ型の仕様が異なる場合、またはクライアント/サーバー間のインタフェースが頻繁に変わる場合のJoltクライアントでの使用に特に適しています。
次のtryOnFml
は、FMLバッファ・タイプの使用方法を示しています。この例では、FMLバッファを使用するJoltクライアントがサーバーにデータを渡す様子を示しています。サーバーはバッファを取得し、データを格納するための新しいFMLバッファを作成し、バッファをJoltクライアントに返します。以下は、サンプル・コードの説明です。
- 「tryOnFml.javaのサンプル・コード」のリストは、PASSFMLサービスを持つJoltクライアントの例です。
- 「tryOnFml.f16のフィールド定義」のリストは、PASSFMLサービスで使用されるOracle TuxedoのFMLフィールドの定義表の例です。
- 「tryOnFml.cのサンプル・コード」のリストは、Joltクライアントから送信されたデータを処理するサーバー側のCコードを含むサーバー・コードの一部です。