version 1.7.2.1, 2004/02/19 01:01:54
|
version 1.16, 2006/01/30 16:18:01
|
|
|
//%2003//////////////////////////////////////////////////////////////////////// |
//%2006//////////////////////////////////////////////////////////////////////// |
// | // |
// Copyright (c) 2000, 2001, 2002 BMC Software, Hewlett-Packard Development |
// Copyright (c) 2000, 2001, 2002 BMC Software; Hewlett-Packard Development |
// Company, L. P., IBM Corp., The Open Group, Tivoli Systems. |
// Company, L.P.; IBM Corp.; The Open Group; Tivoli Systems. |
// Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L. P.; | // Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L. P.; |
// IBM Corp.; EMC Corporation, The Open Group. | // IBM Corp.; EMC Corporation, The Open Group. |
|
// Copyright (c) 2004 BMC Software; Hewlett-Packard Development Company, L.P.; |
|
// IBM Corp.; EMC Corporation; VERITAS Software Corporation; The Open Group. |
|
// Copyright (c) 2005 Hewlett-Packard Development Company, L.P.; IBM Corp.; |
|
// EMC Corporation; VERITAS Software Corporation; The Open Group. |
|
// Copyright (c) 2006 Hewlett-Packard Development Company, L.P.; IBM Corp.; |
|
// EMC Corporation; Symantec Corporation; The Open Group. |
// | // |
// Permission is hereby granted, free of charge, to any person obtaining a copy | // Permission is hereby granted, free of charge, to any person obtaining a copy |
// of this software and associated documentation files (the "Software"), to | // of this software and associated documentation files (the "Software"), to |
|
|
const char * p2 = s2; | const char * p2 = s2; |
| |
ProviderName temp( | ProviderName temp( |
cimObjectPath.toString(), |
|
providerName, | providerName, |
moduleLocation, | moduleLocation, |
interfaceType, | interfaceType, |
|
|
{ | { |
} | } |
| |
|
ProviderName ProviderRegistrar::findConsumerProvider(const String & destinationPath) |
|
{ |
|
CIMInstance provider; |
|
CIMInstance providerModule; |
|
ProviderName temp; |
|
|
|
if (_prm->lookupIndicationConsumer(destinationPath,provider,providerModule)) |
|
return ProviderName( |
|
provider.getProperty(provider.findProperty |
|
("Name")).getValue ().toString (), |
|
providerModule.getProperty(providerModule.findProperty |
|
("Location")).getValue().toString(), |
|
providerModule.getProperty(providerModule.findProperty |
|
("InterfaceType")).getValue().toString(), |
|
0); |
|
|
|
return temp; |
|
} |
|
|
static const Uint16 _MODULE_STOPPING = 9; | static const Uint16 _MODULE_STOPPING = 9; |
static const Uint16 _MODULE_STOPPED = 10; | static const Uint16 _MODULE_STOPPED = 10; |
| |
|
|
| |
ProviderName ProviderRegistrar::findProvider(const ProviderName & providerName, Boolean test) | ProviderName ProviderRegistrar::findProvider(const ProviderName & providerName, Boolean test) |
{ | { |
CIMObjectPath objectName = providerName.getObjectName(); |
// CIMObjectPath objectName = providerName.getObjectName(); |
Uint32 flags = providerName.getCapabilitiesMask(); | Uint32 flags = providerName.getCapabilitiesMask(); |
| |
// validate arguments | // validate arguments |
if(objectName.getNameSpace().isNull() || objectName.getClassName().isNull()) |
/* if(objectName.getNameSpace().isNull() || objectName.getClassName().isNull()) |
{ | { |
throw Exception("Invalid argument."); | throw Exception("Invalid argument."); |
} | } |
|
*/ |
CIMInstance provider; | CIMInstance provider; |
CIMInstance providerModule; | CIMInstance providerModule; |
ProviderName temp; | ProviderName temp; |
|
Boolean hasNoQuery; |
| |
switch (flags) { | switch (flags) { |
case 2: //ProviderType::INSTANCE |
case ProviderType_INSTANCE: |
if (_prm->lookupInstanceProvider(objectName.getNameSpace(),objectName.getClassName(), |
if (_prm->lookupInstanceProvider(providerName.getNameSpace(),providerName.getClassName(), |
provider,providerModule,0)) { | provider,providerModule,0)) { |
if (test) checkBlocked(providerModule); | if (test) checkBlocked(providerModule); |
return ProviderName(providerName.getObjectName(), |
return ProviderName( |
provider.getProperty(provider.findProperty | provider.getProperty(provider.findProperty |
("Name")).getValue ().toString (), | ("Name")).getValue ().toString (), |
providerModule.getProperty(providerModule.findProperty | providerModule.getProperty(providerModule.findProperty |
|
|
ProviderType::INSTANCE); | ProviderType::INSTANCE); |
} | } |
break; | break; |
case 5: //ProviderType::ASSOCIATION |
case ProviderType_ASSOCIATION: |
if (_prm->lookupInstanceProvider(objectName.getNameSpace(),objectName.getClassName(), |
if (_prm->lookupInstanceProvider(providerName.getNameSpace(),providerName.getClassName(), |
provider,providerModule,1)) { | provider,providerModule,1)) { |
if (test) checkBlocked(providerModule); | if (test) checkBlocked(providerModule); |
return ProviderName(providerName.getObjectName(), |
return ProviderName( |
provider.getProperty(provider.findProperty | provider.getProperty(provider.findProperty |
("Name")).getValue ().toString (), | ("Name")).getValue ().toString (), |
providerModule.getProperty(providerModule.findProperty | providerModule.getProperty(providerModule.findProperty |
|
|
ProviderType::ASSOCIATION); | ProviderType::ASSOCIATION); |
} | } |
break; | break; |
|
case ProviderType_QUERY: |
|
if (_prm->lookupInstanceProvider(providerName.getNameSpace(),providerName.getClassName(), |
|
provider,providerModule,0,&hasNoQuery)) { |
|
if (test) checkBlocked(providerModule); |
|
return ProviderName( |
|
provider.getProperty(provider.findProperty |
|
("Name")).getValue ().toString (), |
|
providerModule.getProperty(providerModule.findProperty |
|
("Location")).getValue().toString(), |
|
providerModule.getProperty(providerModule.findProperty |
|
("InterfaceType")).getValue().toString(), |
|
ProviderType::INSTANCE); |
|
} |
|
break; |
|
case ProviderType_METHOD: |
|
if (_prm->lookupMethodProvider(providerName.getNameSpace(),providerName.getClassName(), |
|
providerName.getMethodName(),provider,providerModule)) { |
|
if (test) checkBlocked(providerModule); |
|
return ProviderName( |
|
provider.getProperty(provider.findProperty |
|
("Name")).getValue ().toString (), |
|
providerModule.getProperty(providerModule.findProperty |
|
("Location")).getValue().toString(), |
|
providerModule.getProperty(providerModule.findProperty |
|
("InterfaceType")).getValue().toString(), |
|
ProviderType::METHOD); |
|
} |
|
break; |
default: | default: |
|
CIMObjectPath objectName(String::EMPTY, |
|
providerName.getNameSpace(),providerName.getClassName()); |
temp = _lookupProvider(objectName); | temp = _lookupProvider(objectName); |
} | } |
| |