Solaris WBEM 開発ガイド

メソッドの呼び出し

プロバイダによってサポートされるクラス内のメソッドを呼び出すには、invokeMethod インタフェースを使用します。メソッドのシグニチャーを取得するには、最初にそのメソッドが属するクラスの定義を取得する必要があります。invokeMethod メソッドは CIMValue を返します。呼び出したメソッドが戻り値を定義していない場合には、戻り値は null です。

invokeMethod インタフェースは、次の表に示す 4 つの引数を受け取ります。

表 4–4 invokeMethod パラメータ

パラメータ 

データ型 

説明 

name

CIMObjectPath

インスタンス名。このインスタンスでメソッドを呼び出す 

methodName

String

呼び出すメソッド名 

inParams

Vector

メソッドに渡す入力パラメータ 

outParams

Vector

メソッドから受け取る出力パラメータ 


例 4–15 メソッドの呼び出し

この例では、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);
              }
}