Sun WBEM SDK 開発ガイド

メソッドの呼び出し

プロバイダによってサポートされるクラス内のメソッドを呼び出すには、invokeMethod インタフェースを使用します。メソッドのシグニチャを取得するには、まず、そのメソッドが属するクラスの定義を取得する必要があります。invokeMethod インタフェースは、次の表に示す 4 つの引数を受け取ります。

表 4–11 invokeMethod へのパラメータ

パラメータ 

データ型 

説明 

name

CIMObjectPath 

インスタンスの名前。このインスタンスでメソッドを呼び出す必要がある。 

methodName

String 

呼び出すメソッドの名前。 

inParams

Vector 

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

outParams

Vector 

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

invokeMethod メソッドは CIMValue を返します。呼び出したメソッドが戻り値を定義していない場合には、戻り値は null です。

例 — メソッドの呼び出し

例 4–17 のコードセグメントでは、CIM_Service クラスのインスタンス (デバイスやソフトウェアの機能を管理するサービス) を取得してから、invokeMethod メソッドを使って各サービスを停止します。


例 4–17 メソッドの呼び出し (invokeMethod)

{
    ...
    /* CIM_Service クラスの CIMObjectPath を CIM Object Manager に渡す。
    この例では、このクラスに定義されているメソッドを呼び出す */ 
     
    CIMObjectPath op = new CIMObjectPath("CIM_Service"); 
     
    /* CIM Object Manager がインスタンスオブジェクトパスの列挙
    (CIM_Service クラスの各インスタンスの名前) を返す */
     
    Enumeration e = cc.enumInstances(op, cc.DEEP); 
     
    /* インスタンスオブジェクトパスを含む列挙のサイズ分だけ繰り返す。
    各オブジェクトパスによって参照されるインスタンスを取得するには、
    CIMClient の getInstance クラスを使用する。*/
     
    while(e.hasMoreElements()) {
		    // インスタンスを取得する
		    CIMInstance ci = cc.getInstance(e.nextElement(), true);
		    // StopService メソッドを使って CIM サービスを停止する
		    cc.invokeMethod(ci, "StopService", null, null);
		}
}