version 1.4, 2007/06/12 16:17:35
|
version 1.5.4.1, 2008/02/22 23:13:52
|
|
|
// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION | // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION |
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
// | // |
//============================================================================== |
//============================================================================= |
|
// |
|
//%//////////////////////////////////////////////////////////////////////////// |
| |
| |
/////////////////////////////////////////////////////////////////////////////// | /////////////////////////////////////////////////////////////////////////////// |
|
|
// Server Profile | // Server Profile |
// | // |
// Please see PG_ServerProfile20.mof in the directory | // Please see PG_ServerProfile20.mof in the directory |
// $(PEGASUS_ROOT)/Schemas/Pegasus/InterOp/VER20 for retails regarding the |
// $(PEGASUS_ROOT)/Schemas/Pegasus/InterOp/VER20 for details regarding the |
// classes supported by this control provider. | // classes supported by this control provider. |
// | // |
// Interop forces all creates to the PEGASUS_NAMESPACENAME_INTEROP | // Interop forces all creates to the PEGASUS_NAMESPACENAME_INTEROP |
|
|
"InteropProvider::associators()"); | "InteropProvider::associators()"); |
initProvider(); | initProvider(); |
PEG_TRACE((TRC_CONTROLPROVIDER, Tracer::LEVEL4, | PEG_TRACE((TRC_CONTROLPROVIDER, Tracer::LEVEL4, |
"%s associators. objectName= %s , assocClass= %s resultClass= %s role= %s resultRole %s, includeQualifiers= %s, includeClassOrigin= %s, PropertyList= %s", |
"%s associators. objectName= %s, assocClass= %s resultClass= %s " |
|
"role= %s resultRole %s, includeQualifiers= %s, " |
|
"includeClassOrigin= %s, PropertyList= %s", |
thisProvider, | thisProvider, |
(const char *)objectName.toString().getCString(), | (const char *)objectName.toString().getCString(), |
(const char *)associationClass.getString().getCString(), | (const char *)associationClass.getString().getCString(), |
|
|
handler.processing(); | handler.processing(); |
String originRole = role; | String originRole = role; |
String targetRole = resultRole; | String targetRole = resultRole; |
|
Uint32 numIterations = 1; |
// | // |
// The localReferences call retrieves instances of the desired association | // The localReferences call retrieves instances of the desired association |
// class and sets the originRole and targetRole properties if currently | // class and sets the originRole and targetRole properties if currently |
// empty. | // empty. |
// | // |
Array<CIMInstance> refs = localReferences(context, objectName, |
if (associationClass.equal(PEGASUS_CLASSNAME_PG_REFERENCEDPROFILE)) |
associationClass, originRole, targetRole, CIMPropertyList(), |
{ |
|
if (originRole.size() == 0 && targetRole.size() == 0) |
|
{ |
|
originRole = String("Antecedent"); |
|
targetRole = String("Dependent"); |
|
numIterations = 2; |
|
} |
|
} |
|
for (Uint32 i = 0; i < numIterations; ++i) |
|
{ |
|
Array<CIMInstance> refs = localReferences( |
|
context, |
|
objectName, |
|
associationClass, |
|
originRole, |
|
targetRole, |
|
CIMPropertyList(), |
resultClass); | resultClass); |
for(Uint32 i = 0, n = refs.size(); i < n; ++i) | for(Uint32 i = 0, n = refs.size(); i < n; ++i) |
{ | { |
CIMInstance & currentRef = refs[i]; | CIMInstance & currentRef = refs[i]; |
// Retrieve the "other side" of the association | // Retrieve the "other side" of the association |
CIMObjectPath currentTarget = getRequiredValue<CIMObjectPath>( | CIMObjectPath currentTarget = getRequiredValue<CIMObjectPath>( |
currentRef, targetRole); |
currentRef, |
CIMInstance tmpInstance = localGetInstance(context, currentTarget, |
targetRole); |
|
CIMInstance tmpInstance = localGetInstance( |
|
context, |
|
currentTarget, |
propertyList); | propertyList); |
tmpInstance.setPath(currentTarget); | tmpInstance.setPath(currentTarget); |
handler.deliver(tmpInstance); | handler.deliver(tmpInstance); |
} | } |
|
if (numIterations == 2) |
|
{ |
|
originRole = String("Dependent"); |
|
targetRole = String("Antecedent"); |
|
} |
|
} |
handler.complete(); | handler.complete(); |
| |
PEG_METHOD_EXIT(); | PEG_METHOD_EXIT(); |
|
|
"InteropProvider::associatorNames()"); | "InteropProvider::associatorNames()"); |
initProvider(); | initProvider(); |
PEG_TRACE((TRC_CONTROLPROVIDER, Tracer::LEVEL4, | PEG_TRACE((TRC_CONTROLPROVIDER, Tracer::LEVEL4, |
"%s associatorNames.objectName= %s , assocClass= %s resultClass= %s role= %s resultRole = %s", |
"%s associatorNames.objectName= %s, assocClass= %s resultClass= %s " |
|
"role= %s resultRole = %s", |
thisProvider, | thisProvider, |
(const char *)objectName.toString().getCString(), | (const char *)objectName.toString().getCString(), |
(const char *)associationClass.getString().getCString(), | (const char *)associationClass.getString().getCString(), |
|
|
handler.processing(); | handler.processing(); |
String originRole = role; | String originRole = role; |
String targetRole = resultRole; | String targetRole = resultRole; |
|
Uint32 numIterations = 1; |
// | // |
// The localReferences call retrieves instances of the desired association | // The localReferences call retrieves instances of the desired association |
// class and sets the originRole and targetRole properties if currently | // class and sets the originRole and targetRole properties if currently |
// empty. | // empty. |
// | // |
Array<CIMInstance> refs = localReferences(context, objectName, |
if (associationClass.equal(PEGASUS_CLASSNAME_PG_REFERENCEDPROFILE)) |
associationClass, originRole, targetRole, CIMPropertyList(), |
{ |
|
if (originRole.size() == 0 && targetRole.size() == 0) |
|
{ |
|
originRole = String("Antecedent"); |
|
targetRole = String("Dependent"); |
|
numIterations = 2; |
|
} |
|
} |
|
for (Uint32 i = 0; i < numIterations; ++i) |
|
{ |
|
Array<CIMInstance> refs = localReferences( |
|
context, |
|
objectName, |
|
associationClass, |
|
originRole, |
|
targetRole, |
|
CIMPropertyList(), |
resultClass); | resultClass); |
for(Uint32 i = 0, n = refs.size(); i < n; ++i) | for(Uint32 i = 0, n = refs.size(); i < n; ++i) |
{ | { |
CIMInstance & currentRef = refs[i]; | CIMInstance & currentRef = refs[i]; |
CIMObjectPath currentTarget = getRequiredValue<CIMObjectPath>( | CIMObjectPath currentTarget = getRequiredValue<CIMObjectPath>( |
currentRef, targetRole); |
currentRef, |
|
targetRole); |
handler.deliver(currentTarget); | handler.deliver(currentTarget); |
} | } |
|
if (numIterations == 2) |
|
{ |
|
originRole = String("Dependent"); |
|
targetRole = String("Antecedent"); |
|
} |
|
} |
handler.complete(); | handler.complete(); |
PEG_METHOD_EXIT(); | PEG_METHOD_EXIT(); |
} | } |
|
|
"InteropProvider::references()"); | "InteropProvider::references()"); |
initProvider(); | initProvider(); |
PEG_TRACE((TRC_CONTROLPROVIDER, Tracer::LEVEL4, | PEG_TRACE((TRC_CONTROLPROVIDER, Tracer::LEVEL4, |
"%s references. objectName= %s , resultClass= %s role= %s includeQualifiers= %s, includeClassOrigin= %s, PropertyList= %s", |
"%s references. objectName= %s, resultClass= %s role= %s " |
|
"includeQualifiers= %s, includeClassOrigin= %s, PropertyList= %s", |
thisProvider, | thisProvider, |
(const char *)objectName.toString().getCString(), | (const char *)objectName.toString().getCString(), |
(const char *)resultClass.getString().getCString(), | (const char *)resultClass.getString().getCString(), |
|
|
handler.processing(); | handler.processing(); |
String tmpRole = role; | String tmpRole = role; |
String tmpTarget; | String tmpTarget; |
|
Uint32 numIterations = 1; |
// | // |
// Makes call to internal references method to get result, supplying the | // Makes call to internal references method to get result, supplying the |
// role parameter, but obviously not setting a resultRole/target parameter. | // role parameter, but obviously not setting a resultRole/target parameter. |
// | // |
Array<CIMInstance> refs = |
if (resultClass.equal(PEGASUS_CLASSNAME_PG_REFERENCEDPROFILE)) |
localReferences(context, objectName, resultClass, tmpRole, tmpTarget); |
{ |
|
if (tmpRole.size() == 0) |
|
{ |
|
tmpRole = String("Antecedent"); |
|
tmpTarget = String("Dependent"); |
|
numIterations = 2; |
|
} |
|
} |
|
for (Uint32 i = 0; i < numIterations; ++i) |
|
{ |
|
Array<CIMInstance> refs = localReferences( |
|
context, |
|
objectName, |
|
resultClass, |
|
tmpRole, |
|
tmpTarget); |
for(Uint32 i = 0, n = refs.size(); i < n; ++i) | for(Uint32 i = 0, n = refs.size(); i < n; ++i) |
|
{ |
handler.deliver((CIMObject)refs[i]); | handler.deliver((CIMObject)refs[i]); |
|
} |
|
if (numIterations == 2) |
|
{ |
|
tmpRole = String("Dependent"); |
|
tmpTarget = String("Antecedent"); |
|
} |
|
} |
handler.complete(); | handler.complete(); |
PEG_METHOD_EXIT(); | PEG_METHOD_EXIT(); |
} | } |
|
|
| |
String tmpRole = role; | String tmpRole = role; |
String tmpTarget; | String tmpTarget; |
|
Uint32 numIterations = 1; |
// | // |
// Makes call to internal references method to get result, supplying the | // Makes call to internal references method to get result, supplying the |
// role parameter, but obviously not setting a resultRole/target parameter. | // role parameter, but obviously not setting a resultRole/target parameter. |
// | // |
Array<CIMInstance> refs = |
if (resultClass.equal(PEGASUS_CLASSNAME_PG_REFERENCEDPROFILE)) |
localReferences(context, objectName, resultClass, tmpRole, tmpTarget); |
{ |
|
if (tmpRole.size() == 0) |
|
{ |
|
tmpRole = String("Antecedent"); |
|
tmpTarget = String("Dependent"); |
|
numIterations = 2; |
|
} |
|
} |
|
for (Uint32 i = 0; i < numIterations; ++i) |
|
{ |
|
Array<CIMInstance> refs = localReferences( |
|
context, |
|
objectName, |
|
resultClass, |
|
tmpRole, |
|
tmpTarget); |
for(Uint32 i = 0, n = refs.size(); i < n; ++i) | for(Uint32 i = 0, n = refs.size(); i < n; ++i) |
{ | { |
handler.deliver(refs[i].getPath()); | handler.deliver(refs[i].getPath()); |
} | } |
|
if (numIterations == 2) |
|
{ |
|
tmpRole = String("Dependent"); |
|
tmpTarget = String("Antecedent"); |
|
} |
|
} |
| |
handler.complete(); | handler.complete(); |
| |