プロバイダがサポートするクラスのメソッドを呼び出すには、invokeMethod メソッドを使用します。アプリケーションでメソッドのシグニチャを検出するには、最初にメソッドが属しているクラスの定義を取得する必要があります。invokeMethod メソッドは、次の 4 つの引数を取ります。
データ型 |
説明 |
---|---|
CIMObjectPath |
メソッドの起動が必要なインスタンスの名前 |
String |
呼び出すメソッド名 |
Vector |
メソッドに渡す入力パラメータ |
Vector |
メソッドから取得する出力パラメータ |
invokeMethod メソッドは、CIMValue を返します。呼び出されるメソッドが戻り値を定義していない場合、戻り値は NULL です。
例 6-11 のコードセグメントは、CIM_Service クラスのインスタンス (デバイス機能またはソフトウェア機能を管理するサービス) を取得し、invokeMethod メソッドを使用して各サービスを停止します。
{ /* CIM Object Manager に CIM_Service クラスの CIM オブジェクト パスを渡す (このクラスのインスタンスを取得する)。 */ CIMObjectPath op = new CIMObjectPath("CIM_Service"); /* CIM Object Manager は、オブジェクトパスのベクトル (CIM_Service クラスのインスタンス名) を返す。 */ Vector v = cc.enumInstances(op, true); /* インスタンスオブジェクトパスのベクトルを繰り返す。 各オブジェクト名によって参照されるインスタンスを取得 するには、CIM Client の getInstance インタフェースを 使用する。 */ for (int i=0; i < v.size(); i++) { // インスタンスを取得 CIMInstance ci = cc.getInstance(v.elementAt(i)); //CIM サービスを停止するために Stop Service メソッドを呼び出す。 c.invokeMethod(v.element(i), "StopService", null, null); } } |