プロバイダによってサポートされるクラス内のメソッドを呼び出すには、invokeMethod インタフェースを使用します。メソッドのシグニチャーを取得するには、最初にそのメソッドが属するクラスの定義を取得する必要があります。invokeMethod メソッドは CIMValue を返します。呼び出したメソッドが戻り値を定義していない場合には、戻り値は null です。
invokeMethod インタフェースは、次の表に示す 4 つの引数を受け取ります。
表 4–4 invokeMethod パラメータ|
パラメータ |
データ型 |
説明 |
|---|---|---|
|
name |
CIMObjectPath |
インスタンス名。このインスタンスでメソッドを呼び出す |
|
methodName |
String |
呼び出すメソッド名 |
|
inParams |
Vector |
メソッドに渡す入力パラメータ |
|
outParams |
Vector |
メソッドから受け取る出力パラメータ |
この例では、CIM_Service クラスのインスタンスを取得します。これらのインスタンスは、デバイスやソフトウェアの機能を管理するサービスを表します。invokeMethod メソッドを使って、各サービスを停止します。
{
...
/* CIM_Service クラスの
CIM オブジェクトパスを CIM オブジェクトマネージャに渡す。
このクラスで定義されたメソッドを呼び出す */
CIMObjectPath op = new CIMObjectPath("CIM_Service");
/* CIM オブジェクトマネージャは インスタンスオブジェクトパスの
列挙、CIM_Service クラスのインスタンス
名を返す */
Enumeration e = cc.enumerateInstanceNames (op, true);
/* インスタンスオブジェクトパスの列挙を繰り返し処理する */
while(e.hasMoreElements()) {
// インスタンスを取得する
CIMObjectPath op = (CIMObjectPath) e.nextElement();
//Stop Service メソッドを呼び出して CIM サービスを停止する
cc.invokeMethod("StopService", null, null);
}
}