ECL コンテナー・オブジェクト

HACL クラスによっては、他のオブジェクトのコンテナーとして働くものもあります。例えば、ECLSession オブジェクトは、ECLPS、ECLOIA、ECLWinMetrics、および ECLXfer オブジェクトのインスタンスを収容します。コンテナーは、含まれる オブジェクトを指すポインターを戻すメソッドを提供します。例えば、ECLSession オブジェクトには GetOIA メソッドがありますが、 これは OIA オブジェクトを指すポインターを戻します。収容されたオブジェクトは、そのコンテナーのクラスの共用メンバーとして実装されるのではなく、メソッドを通してのみアクセスされます。

パフォーマンス上の理由または他の理由から、コンテナー・オブジェクトの作成時に 収容オブジェクトは作成されることも作成されないこともあります。クラスの実装において、収容オブジェクトを指すポインターをアプリケーションが最初に 要求するまで、そのオブジェクトの作成を延期することもできます。アプリケーションでは、収容されるオブジェクトはそのコンテナーと 同時に作成されると見なしてはなりません。例えば、ECLSession オブジェクトの作成時に ECLPS オブジェクト のインスタンスは作成されないことがあります。そのような場合、GetPS メソッドが最初に呼び出される まで、ECLSession クラスは ECLPS オブジェクトの作成を延期することができます。

コンテナー・クラスが破棄されると、そこに収容されているすべてのインスタンスも破棄されます。アプリケーションに戻されたすべてのポインターは無効になるので、使用してはなりません。

注: HACL 層によっては (自動化オブジェクトなど)、包含方式を隠したり、これを明示ポインターを使用しない命名方式に 再キャストしたりすることがあります。