version 1.66.4.1, 2007/04/04 11:04:46
|
version 1.69.4.1, 2008/01/16 12:11:23
|
|
|
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
// | // |
//============================================================================== | //============================================================================== |
|
// |
|
//%///////////////////////////////////////////////////////////////////////////// |
| |
/////////////////////////////////////////////////////////////////////////////// | /////////////////////////////////////////////////////////////////////////////// |
// Interop Provider - This provider services those classes from the | // Interop Provider - This provider services those classes from the |
|
|
opClass != PEGASUS_CLASSNAME_PG_ELEMENTCONFORMSTOPROFILE) | opClass != PEGASUS_CLASSNAME_PG_ELEMENTCONFORMSTOPROFILE) |
{ | { |
AutoMutex mut(interopMut); | AutoMutex mut(interopMut); |
return cimomHandle.getInstance(context, opNamespace, |
CIMInstance gotInstance = cimomHandle.getInstance( |
instanceName, false, false, false, propertyList); |
context, |
|
opNamespace, |
|
instanceName, |
|
false, |
|
false, |
|
false, |
|
propertyList); |
|
PEG_METHOD_EXIT(); |
|
return gotInstance; |
} | } |
| |
// Create reference from host, namespace, class components of | // Create reference from host, namespace, class components of |
|
|
} | } |
| |
if(!found) | if(!found) |
|
{ |
|
PEG_METHOD_EXIT(); |
return false; | return false; |
} | } |
} | } |
|
} |
else | else |
{ | { |
// Otherwise, just get the enum value representing the origin class | // Otherwise, just get the enum value representing the origin class |
|
|
// | // |
Array<CIMNamespaceName> namespaceNames = | Array<CIMNamespaceName> namespaceNames = |
repository->enumerateNameSpaces(); | repository->enumerateNameSpaces(); |
|
// get the PG_ElementConformstoProfile class without the qualifiers |
|
// and then add just the required ASSOCIATION qualifier, so that |
|
// resolveclass doesn't fail for the test/EmbeddedInstance/Dynamic |
|
// namespace, which uses the CIM25 schema that doesn't include any |
|
// of the new qualifiers added to this class in later versions of |
|
// the CIMSchema. |
CIMClass conformsClass = repository->getClass( | CIMClass conformsClass = repository->getClass( |
PEGASUS_NAMESPACENAME_INTEROP, | PEGASUS_NAMESPACENAME_INTEROP, |
PEGASUS_CLASSNAME_PG_ELEMENTCONFORMSTOPROFILE); |
PEGASUS_CLASSNAME_PG_ELEMENTCONFORMSTOPROFILE, true, false); |
|
conformsClass.addQualifier(CIMQualifier(CIMName("ASSOCIATION"), |
|
CIMValue(true))); |
CIMClass profileClass = repository->getClass( | CIMClass profileClass = repository->getClass( |
PEGASUS_NAMESPACENAME_INTEROP, | PEGASUS_NAMESPACENAME_INTEROP, |
PEGASUS_CLASSNAME_PG_REGISTEREDPROFILE); |
PEGASUS_CLASSNAME_PG_REGISTEREDPROFILE, true, false); |
for(Uint32 i = 0, n = namespaceNames.size(); i < n; ++i) | for(Uint32 i = 0, n = namespaceNames.size(); i < n; ++i) |
{ | { |
// Check if the PG_ElementConformsToProfile class is present | // Check if the PG_ElementConformsToProfile class is present |
CIMNamespaceName & currentNamespace = namespaceNames[i]; | CIMNamespaceName & currentNamespace = namespaceNames[i]; |
|
|
CIMClass tmpCimClass; | CIMClass tmpCimClass; |
CIMClass tmpPgClass; | CIMClass tmpPgClass; |
CIMClass tmpPgProfileClass; | CIMClass tmpPgProfileClass; |
|
|
{ | { |
if(tmpPgClass.isUninitialized()) | if(tmpPgClass.isUninitialized()) |
{ | { |
|
CIMClass newclass = conformsClass.clone(); |
CIMObjectPath newPath = conformsClass.getPath(); | CIMObjectPath newPath = conformsClass.getPath(); |
newPath.setNameSpace(currentNamespace); | newPath.setNameSpace(currentNamespace); |
conformsClass.setPath(newPath); |
newclass.setPath(newPath); |
repository->createClass(currentNamespace, | repository->createClass(currentNamespace, |
conformsClass); |
newclass); |
} | } |
if(tmpPgProfileClass.isUninitialized()) | if(tmpPgProfileClass.isUninitialized()) |
{ | { |
CIMObjectPath newPath = conformsClass.getPath(); |
CIMClass newclass = profileClass.clone(); |
|
CIMObjectPath newPath = profileClass.getPath(); |
newPath.setNameSpace(currentNamespace); | newPath.setNameSpace(currentNamespace); |
conformsClass.setPath(newPath); |
newclass.setPath(newPath); |
repository->createClass(currentNamespace, | repository->createClass(currentNamespace, |
profileClass); |
newclass); |
} | } |
} | } |
} | } |
|
|
} | } |
| |
PEGASUS_NAMESPACE_END | PEGASUS_NAMESPACE_END |
|
|
// END OF FILE | // END OF FILE |