main 関数のインクルード

このタスクについて

main 関数は、CICS® ファウンデーション・クラスを正しく初期設定し、デフォルトの例外処理を指定し、それが終了すると割り振り済みのメモリーを解放します。 作成するアプリケーションにはこのコードをインクルードすることをお勧めします。この main 関数は独自のバリエーションに置き換えることもできますが、その必要はほとんどないはずです。

ソース・ファイル: iccmain.cpp

このスタブには、3 つの機能があります。

手順


  1. ファウンデーション・クラス環境を初期設定する。 初期設定は、以下を制御する #define 文によりカスタマイズできます。

  2. これは、クラス IccUserControl のデフォルトの定義を提供します。このクラスは、 デフォルトのコンストラクターおよび run メソッドを収めた IccControl から派生されたものです。

  3. これは try catch 構成体を使用して、ユーザーの制御オブジェクトの run メソッドを呼び出します。

タスクの結果

main コードの関数部分を、図 1 に示します。

図 1. コード例: main 関数
 void main(void)                                          (1)
 {
     Icc::initializeEnvironment(ICC_CLASS_MEMORY_MGMT,    (2)
                                ICC_FAMILY_SUBSET,
                                ICC_EDF_BOOL);
     try                                                  (3)
     {
         ICC_USER_CONTROL control;                        (4)
         control.run();                                   (5)
     }
     catch(IccException& exc)                             (6)
     {
         Icc::catchException(exc);                        (7)
     }
     catch(...)                                           (8)
     {
         Icc::unknownException();                         (9)
     }
     Icc::returnToCICS();                                 (10)
 }

(1) これは、C++ の main エントリー・ポイントです。CICS for OS/2 では、このエントリー・ポイントは、main ではなく faamain です。

(2) この呼び出しにより、環境が初期設定されます。これは必須です。 プラットフォームのデフォルトには、既に 3 つのパラメーターが定義されています。

(3) アプリケーション・コードが例外をキャッチしない場合は、try catch を使用して、ユーザーのアプリケーション・コードを実行します。

(4) 制御オブジェクトを作成します。

(5) (IccControl の純粋仮想として定義された) 制御オブジェクトの run メソッドを起動します。

(6) アプリケーションがキャッチしていない IccException オブジェクトがあればそれをキャッチします。

(7) この関数を呼び出して、タスクを異常終了させます。

(8) アプリケーションがキャッチしていないその他の例外があれば、それをキャッチします。

(9) この関数を呼び出して、タスクを異常終了させます。

(10) 制御を CICS に戻します。