version 1.88, 2003/09/29 21:51:07
|
version 1.89, 2003/09/30 21:02:04
|
|
|
#endif | #endif |
| |
matchedSubscriptions = _getMatchingSubscriptions( | matchedSubscriptions = _getMatchingSubscriptions( |
indication.getClassName (), nameSpaces, propertyList); |
indication.getClassName (), nameSpaces, propertyList, |
|
true, request->provider); |
| |
#ifdef PEGASUS_INDICATION_PERFINST | #ifdef PEGASUS_INDICATION_PERFINST |
elapsed = stopWatch.getElapsed (); | elapsed = stopWatch.getElapsed (); |
|
|
Array <CIMInstance> IndicationService::_getMatchingSubscriptions ( | Array <CIMInstance> IndicationService::_getMatchingSubscriptions ( |
const CIMName & supportedClass, | const CIMName & supportedClass, |
const Array <CIMNamespaceName> nameSpaces, | const Array <CIMNamespaceName> nameSpaces, |
const CIMPropertyList & supportedProperties) |
const CIMPropertyList & supportedProperties, |
|
const Boolean checkProvider, |
|
const CIMInstance & provider) |
{ | { |
Array <CIMInstance> matchingSubscriptions; | Array <CIMInstance> matchingSubscriptions; |
Array <CIMInstance> subscriptions; | Array <CIMInstance> subscriptions; |
|
|
{ | { |
Boolean match = true; | Boolean match = true; |
| |
|
if (checkProvider) |
|
{ |
|
// |
|
// Check if the provider who generated this indication |
|
// accepted this subscription |
|
// |
|
String activeSubscriptionsKey = |
|
_generateActiveSubscriptionsKey |
|
(subscriptions [j].getPath ()); |
|
ActiveSubscriptionsTableEntry tableValue; |
|
if (_lockedLookupActiveSubscriptionsEntry |
|
(activeSubscriptionsKey, tableValue)) |
|
{ |
|
// |
|
// If provider is not in list, it did not accept the |
|
// subscription |
|
// |
|
if ((_providerInList (provider, tableValue)) == |
|
PEG_NOT_FOUND) |
|
{ |
|
match = false; |
|
break; |
|
} |
|
} |
|
} |
|
|
// | // |
// If supported properties is null (all properties) | // If supported properties is null (all properties) |
// the subscription can be supported | // the subscription can be supported |
|
|
if (propertyList.isNull ()) | if (propertyList.isNull ()) |
{ | { |
match = false; | match = false; |
|
break; |
} | } |
else | else |
{ | { |
|
|
propertyList[k])) | propertyList[k])) |
{ | { |
match = false; | match = false; |
|
break; |
} | } |
} | } |
} | } |
|
|
| |
try | try |
{ | { |
|
// |
|
// Get the indication class object from the repository |
|
// Specify localOnly=false because superclass properties are needed |
|
// Specify includeQualifiers=false because qualifiers are not needed |
|
// |
indicationClass = _repository->getClass (nameSpaceName, | indicationClass = _repository->getClass (nameSpaceName, |
indicationClassName); |
indicationClassName, false, false); |
} | } |
catch (Exception e) | catch (Exception e) |
{ | { |