プロバイダは、CIM_Indication クラスのサブクラスのインスタンスを作成することによって、CIM イベントのインジケーションを生成します。
次の表に、プロバイダが生成すべき内部 CIM イベントを示します。
表 6–4 CIM イベントインジケーションクラス|
イベントクラス |
説明 |
|---|---|
|
CIM_InstCreation |
新しいインスタンスが作成されたことを知らせる。 |
|
CIM_InstDeletion |
既存のインスタンスが削除されたことを知らせる。 |
|
CIM_InstModification |
インスタンスが変更されたことを知らせる。インジケーションには、変更される前のインスタンスのコピーが含まれていなければならない。 |
EventProvider インタフェースを実装します。以下に例を示します。
public class sampleEventProvider implements
InstanceProvider EventProvider{
// プロバイダが CIM Object Manager に接続するための参照
private ProviderCIMOMHandle cimom;
}
プロバイダが処理するインスタンスインジケーションに対して、表 6–3 に示すそれぞれのメソッドを実行します。
作成、変更、削除のインスタンスのイベント型ごとに、表 6–4 に示すインジケーションを作成します。以下に createInstance メソッドの例を示します。
public CIMObjectPath createInstance(CIMObjectPath op,
CIMInstance ci)
throws CIMException {
CIMObjectpath newop = ip.createInstance(op, ci);
CIMInstance indication = new CIMInstance();
indication.setClassName("CIM_InstCreation");
CIMProperty cp = new CIMProperty();
cp.setName("SourceInstance");
cp.setValue(new CIMValue(ci));
Vector v = new Vector();
v.addElement(cp);
indication.setProperties(v);
...
}
イベントインジケーションを CIM Object Manager に送信します。以下に例を示します。
cimom.deliverEvent(op.getNameSpace(), indication);
return newop;