サービス・アクセス変数の動的なバインド
動的バインディングを使用して、実行時にサービスを選択するか、または変数のバインド先サービスを変更することができます。
変数を動的にバインドするには、@BindService プロパティーではなく、ServiceLib EGL ライブラリー内の関数を使用します。 このオプションは、Rich UI ハンドラーまたは関連ライブラリーから専用サービスへのアクセスには使用できません。
デプロイメント記述子ファイル内に、やや異なる 2 つのサービス実装に関する項目を作成したとします。
<webBinding interface="interfaces.SpeechTranslator"
name="TranslateSpanish" port="SpanishPort"/>
<webBinding interface="interfaces.SpeechTranslator"
name="TranslateGerman" port="GermanPort"/>
これらの項目に 1 つずつ、合計 2 つの変数を作成してバインドすることができます。あるいは、項目が共有するインターフェース・パーツに基づく変数を 1 つ作成することができます。この後、ServiceLib.bindService() システム関数を使用して、使用するサービスに変数をバインドできます。- デプロイメント記述子項目内で、インターフェース・パーツまたはサービス・パーツに基づいて、変数を作成します。
myTranslator SpeechTranslator; - bindService() 関数を使用して、変数をサービス実装にバインドします。
この場合、myTranslator 変数が、TranslateSpanish という名前の項目にバインドされます。myTranslator = ServiceLib.bindService("TranslateSpanish"); - その変数を使用して、サービスにアクセスします。
mySpanishString string = myTranslator.translate ("This sentence is in Spanish"); - bindService() 関数をもう一度使用して、サービスを別の実装にバインドできます。
myTranslator = ServiceLib.bindService("TranslateGerman"); - これで、変数を使用して、別のサービスにアクセスできるようになります。
myGermanString string = myTranslator.translate ("This sentence is in German");