javax.wbem.provider
Interface IndicationProvider

All Superinterfaces:
Provider

public interface IndicationProvider
extends Provider

This interface is implemented by indication providers.

Filters may be broken down into sub filters. Using sub filters, providers can process indications without knowing about the class hierarchy. The sub filter information is passed in as three arrays:

The following example illustrates the array contents where the class hierarchy in root/cimv2 is:
  test_a
  test_b : test_a
  test_c : test_a
  test_d : test_a
 
If Provider P is the provider for test_b and test_c and the filter is 'select * from CIM_InstIndication where sourceInstance ISA test_a and sourceInstance.prop1 = 20', then P gets the following subfilter information:
  subFilters[0] = "select * from CIM_InstCreation where sourceInstance.prop1=20"
  subFilters[1] = "select * from CIM_Deletion where sourceInstance.prop1=20"
  subFilters[2] = "select * from CIM_Modification where sourceInstance.prop1=20"
  subFilters[3] = "select * from CIM_Read where sourceInstance.prop1=20"
  subFilters[4] = "select * from CIM_Method where sourceInstance.prop1=20"
  subFilters[5] = "select * from CIM_InstCreation where sourceInstance.prop1=20"
  subFilters[6] = "select * from CIM_Deletion where sourceInstance.prop1=20"
  subFilters[7] = "select * from CIM_Modification where sourceInstance.prop1=20"
  subFilters[8] = "select * from CIM_Read where sourceInstance.prop1=20"
  subFilters[9] = "select * from CIM_Method where sourceInstance.prop1=20"
 
  classPath[0] = root/cimv2:test_b
  classPath[1] = root/cimv2:test_b
  classPath[2] = root/cimv2:test_b
  classPath[3] = root/cimv2:test_b
  classPath[4] = root/cimv2:test_b
  classPath[5] = root/cimv2:test_c
  classPath[6] = root/cimv2:test_c
  classPath[7] = root/cimv2:test_c
  classPath[8] = root/cimv2:test_c
  classPath[9] = root/cimv2:test_c
 
  eventType[0] = "CIM_InstCreation"
  eventType[1] = "CIM_InstDeletion"
  eventType[2] = "CIM_InstModification"
  eventType[3] = "CIM_InstRead"
  eventType[4] = "CIM_InstMethod"
  eventType[5] = "CIM_InstCreation"
  eventType[6] = "CIM_InstDeletion"
  eventType[7] = "CIM_InstModification"
  eventType[8] = "CIM_InstRead"
  eventType[9] = "CIM_InstMethod"
 
NOTE: eventType is not strictly needed as the Provider could extract it from the subFilters string. It is provided as a convenience.

Two event handling interfaces are defined. Simple event handlers should use the EventProvider interface. More sophisticated event handlers should use the CIMIndicationHandler interface.

If a simple event handler is only interested in managing event filter activation/deactivation and does not intend to perform operations on the filters, handlers or subscriptions, then it should use the Event Provider interface.

In contrast, if a more sophisticated event handler intends to perform operations on filter, handler and subscription instances, then it should use the CIMIndicationHandler interface. For example, an event handler may wish to examine all filters to determine which filter applies.

Since:
JSR48 1.0.0

Method Summary
 void activateFilter(CIMInstance filter, CIMInstance handler, CIMInstance subscription, java.lang.String[] subFilters, CIMObjectPath[] classPath, java.lang.String[] eventType)
          Invoked to ask the Provider to check for events.
 void authorizeFilter(CIMInstance filter, CIMInstance handler, CIMInstance subscription, java.lang.String[] subFilters, CIMObjectPath[] classPath, java.lang.String[] eventType)
          Invoked to test if the given subscription is allowed.
 void deActivateFilter(CIMInstance filter, CIMInstance handler, CIMInstance subscription, java.lang.String[] subFilters, CIMObjectPath[] classPath, java.lang.String[] eventType)
          Invoked to deactivate an event filter.
 
Methods inherited from interface javax.wbem.provider.Provider
close, initialize
 

Method Detail

activateFilter

public void activateFilter(CIMInstance filter,
                           CIMInstance handler,
                           CIMInstance subscription,
                           java.lang.String[] subFilters,
                           CIMObjectPath[] classPath,
                           java.lang.String[] eventType)
                    throws WBEMException
Invoked to ask the Provider to check for events.

Parameters:
filter - The CIM_IndicationFilter instance being subscribed to.
handler - The CIM_IndicationHandler instance that is the destination of the indication.
subscription - The subscription instance associating the filter and handler.
subFilters - See description for CIMIndicationProvider above
classPath - See description for CIMIndicationProvider above
eventType - See description for CIMIndicationProvider above
Throws:
WBEMException - If unsuccessful, one of the following status codes may be returned. The ORDERED list is:
  • CIM_ERR_ACCESS_DENIED
  • CIM_ERR_NOT_SUPPORTED (provider does not support this method)
  • CIM_ERR_INVALID_PARAMETER (for this method)
  • CIM_ERR_FAILED (Provider could not activat the filter)

authorizeFilter

public void authorizeFilter(CIMInstance filter,
                            CIMInstance handler,
                            CIMInstance subscription,
                            java.lang.String[] subFilters,
                            CIMObjectPath[] classPath,
                            java.lang.String[] eventType)
                     throws WBEMException
Invoked to test if the given subscription is allowed.

Parameters:
filter - The CIM_IndicationFilter instance being subscribed to.
handler - The CIM_IndicationHandler instance that is the destination of the indication.
subscription - The subscription instance associating the filter and handler.
subFilters - See description for CIMIndicationProvider above
classPath - See description for CIMIndicationProvider above
eventType - See description for CIMIndicationProvider above
Throws:
WBEMException - If unsuccessful, one of the following status codes may be returned. The ORDERED list is:
  • CIM_ERR_ACCESS_DENIED
  • CIM_ERR_NOT_SUPPORTED (provider does not support this method)
  • CIM_ERR_INVALID_PARAMETER (for this method)
  • CIM_ERR_FAILED (some other unspecified error occurred)
See Also:
Authorizable

deActivateFilter

public void deActivateFilter(CIMInstance filter,
                             CIMInstance handler,
                             CIMInstance subscription,
                             java.lang.String[] subFilters,
                             CIMObjectPath[] classPath,
                             java.lang.String[] eventType)
                      throws WBEMException
Invoked to deactivate an event filter.

Parameters:
filter - The CIM_IndicationFilter instance being subscribed to.
handler - The CIM_IndicationHandler instance that is the destination of the indications.
subscription - The subscription instance associating the filter and handler.
subFilters - See description for CIMIndicationProvider above
classPath - See description for CIMIndicationProvider above
eventType - See description for CIMIndicationProvider above
Throws:
WBEMException - If unsuccessful, one of the following status codes may be returned. The ORDERED list is:
  • CIM_ERR_ACCESS_DENIED
  • CIM_ERR_NOT_SUPPORTED (provider does not support this method)
  • CIM_ERR_INVALID_PARAMETER (for this method)
  • CIM_ERR_FAILED (Provider could not deactivate the filter)


Java™ WBEM (JSR48) 1.0.0 API