version 1.34, 2009/12/15 11:39:38
|
version 1.36, 2011/10/13 05:21:44
|
|
|
#include <Pegasus/Common/SharedPtr.h> | #include <Pegasus/Common/SharedPtr.h> |
#include <Pegasus/Provider/CIMOMHandle.h> | #include <Pegasus/Provider/CIMOMHandle.h> |
#include <Pegasus/Config/ConfigManager.h> | #include <Pegasus/Config/ConfigManager.h> |
|
#include <Pegasus/Common/SCMOClassCache.h> |
| |
PEGASUS_NAMESPACE_BEGIN | PEGASUS_NAMESPACE_BEGIN |
| |
|
|
Array<SCMOInstance> scmoObjs= getSCMOObjects(); | Array<SCMOInstance> scmoObjs= getSCMOObjects(); |
if (cimObjs.size() != 0) | if (cimObjs.size() != 0) |
{ | { |
|
// complete keybindings based on set property values |
|
CIMOperationRequestMessage * reqMsg = |
|
(CIMOperationRequestMessage*) _request; |
|
|
|
Boolean clsRead=false; |
|
for (Uint32 j = 0, m = cimObjs.size(); j < m; j++) |
|
{ |
|
CIMObject & co=cimObjs[j]; |
|
CIMObjectPath op=co.getPath(); |
|
const Array<CIMKeyBinding>& kbs=op.getKeyBindings(); |
|
if (kbs.size()==0) |
|
{ // no path set why ? |
|
if (clsRead==false || _cimClass.isUninitialized()) |
|
{ |
|
SCMOClassCache * classCache = SCMOClassCache::getInstance(); |
|
CString nsName = reqMsg->nameSpace.getString().getCString(); |
|
CString clName = reqMsg->className.getString().getCString(); |
|
SCMOClass theClass = classCache->getSCMOClass( |
|
nsName, |
|
strlen(nsName), |
|
clName, |
|
strlen(clName)); |
|
theClass.getCIMClass(_cimClass); |
|
clsRead=true; |
|
} |
|
op = CIMInstance(co).buildPath(_cimClass); |
|
} |
|
op.setNameSpace(reqMsg->nameSpace); |
|
op.setHost(System::getHostName()); |
|
co.setPath(op); |
|
} |
msg.getResponseData().setObjects(cimObjs); | msg.getResponseData().setObjects(cimObjs); |
} | } |
if (scmoObjs.size() != 0) | if (scmoObjs.size() != 0) |
|
|
contentLangs = getLanguages(); | contentLangs = getLanguages(); |
} | } |
| |
|
Uint32 timeoutMilliSec = 0; |
|
if (context.contains(TimeoutContainer::NAME)) |
|
{ |
|
TimeoutContainer timeoutContainer = |
|
context.get(TimeoutContainer::NAME); |
|
timeoutMilliSec = timeoutContainer.getTimeOut(); |
|
} |
|
|
// create message | // create message |
CIMProcessIndicationRequestMessage* request = | CIMProcessIndicationRequestMessage* request = |
new CIMProcessIndicationRequestMessage( | new CIMProcessIndicationRequestMessage( |
|
|
cimInstance, | cimInstance, |
subscriptionInstanceNames, | subscriptionInstanceNames, |
_provider, | _provider, |
QueueIdStack()); // Must be filled in by the callback function |
QueueIdStack(), // Must be filled in by the callback function |
|
timeoutMilliSec); |
| |
request->operationContext = context; | request->operationContext = context; |
| |