コンポーネントインタフェースは、ベースインタフェースから派生し、更にこのコンポーネント用の小さなインタフェースを提供します。ダイナミック集約演算による新しいインタフェース提供の可能性とプラグインコンポーネントを追加する標準的な方法を結合させています。 これによってCORBAオブジェクトは、起動時に機能を強化性を持ちます。
5種類のインタフェースがあります:
組み込みインタフェース(派生型インタフェース)
組み込み集合体インタフェース
ダイナミック集合体インタフェース
組み込みプラグインインタフェース
ダイナミックプラグインインタフェース
組み込みインタフェースは全て、オブジェクトが直接実装するインタフェースです。これはそのイ ンタフェースが実際のオブジェクト実装の一部であり、ADD_INTERFACEマクロ(komComponent.hの)経由で、指定できるということです。 ですから例としてインタフェースディスクリプションは次のようなものになります:
1 module Foo 2 { 3 interface MyInterface : AnotherInterface 4 { 5 ... 6 }; 7 }; |
このインタフェースの実装構造に次の行を追加すべきでしょう:
1 ConstructorNameOfMyInterface::ConstructorNameOfMyInterface( ... ) 2 { 3 ... 4 ADD_INTERFACE( "IDL:Foo/MyInterface:1.0" ); 5 ... 6 } |
このようにしてコンポーネントがインタフェース"Foo/インタフェース"をサポートしており、 したがって、3つの関数getInterface()、interfaces()、supportsInterface()によってそれを利用できるということを示しています。