3.5.1 各インタフェースの操作を実装するメソッドの記述

OMG IDLファイルをコンパイルした後は、ファイルの各インタフェースの操作を実装するメソッドを記述します。実装ファイルには、以下のものが含まれます。

  • OMG IDLファイルで指定された各操作のメソッド宣言
  • アプリケーションのビジネス・ロジック
  • 各インタフェースの実装のコンストラクタ(実装は任意)
  • activate_object()メソッドとdeactivate_object()メソッド(オプション)

    activate_object()メソッドおよびdeactivate_object()メソッド内には、オブジェクトのアクティブ化と非アクティブ化に関連する特定のステップを実行するコードを記述します。詳細は、Oracle Tuxedoオンライン・ドキュメントの『CORBAサーバー・アプリケーションの作成』を参照してください。

実装ファイルは手動で記述できます。idlコマンドには、実装ファイルのテンプレートを生成するオプションがあります。

次のコード・スニペットは、Simpappサンプル・アプリケーションのSimpleおよびSimpleFactoryインタフェースのC++実装を示しています。

// Implementation of the Simple_i::to_lower method which converts
// a string to lower case.

char * Simple_i::to_lower(const char * value) {
  CORBA::String_var var_lower = CORBA::string_dup(value);
  for (char * ptr = var_lower; ptr && * ptr; ptr++) {
    * ptr = tolower( * ptr);
  }
  return var_lower._retn();
}
// Implementation of the Simple_i::to_upper method which converts
// a string to upper case.

void Simple_i::to_upper(char * & valuel) {
  CORBA::String_var var_upper = value1;
  var_upper = CORBA::string_dup(var_upper.in());
  for (char * ptr = var_upper; ptr && * ptr; ptr++) {
    * ptr = toupper( * ptr);
  }
  value = var_upper._retn();
}
// Implementation of the SimpleFactory_i::find_simple method which
// creates an object reference to a Simple object.

Simple_ptr SimpleFactory_i::find_simple() {
  CORBA::Object_var var_simple_oref =
    TP::create_object_reference(
      _tc_Simple - > id(),
      "simple",
      CORBA::NVList::_nil()
    );
}