version 1.157, 2009/06/30 10:40:14
|
version 1.157.2.3, 2009/10/01 09:33:41
|
|
|
#include "CMPI_ObjectPath.h" | #include "CMPI_ObjectPath.h" |
#include "CMPI_Result.h" | #include "CMPI_Result.h" |
#include "CMPI_SelectExp.h" | #include "CMPI_SelectExp.h" |
|
#include "CMPISCMOUtilities.h" |
|
|
| |
#include <Pegasus/Common/CIMMessage.h> | #include <Pegasus/Common/CIMMessage.h> |
#include <Pegasus/Common/OperationContext.h> | #include <Pegasus/Common/OperationContext.h> |
|
|
selxTab.lookup(i.key(), selx); | selxTab.lookup(i.key(), selx); |
if (selx->eSelx) | if (selx->eSelx) |
delete selx->eSelx; | delete selx->eSelx; |
if (selx->qContext) |
|
delete selx->qContext; |
|
delete selx; | delete selx; |
//Same as above! | //Same as above! |
//selxTab.remove(i.key()); | //selxTab.remove(i.key()); |
|
|
(const char*) | (const char*) |
request->instanceName.getClassName().getString().getCString())); | request->instanceName.getClassName().getString().getCString())); |
| |
// make target object path |
|
CIMObjectPath objectPath( |
|
System::getHostName(), |
|
request->nameSpace, |
|
request->instanceName.getClassName(), |
|
request->instanceName.getKeyBindings()); |
|
|
|
Boolean remote=false; | Boolean remote=false; |
OpProviderHolder ph; | OpProviderHolder ph; |
CString remoteInfo; | CString remoteInfo; |
|
|
| |
CMPIStatus rc={CMPI_RC_OK,NULL}; | CMPIStatus rc={CMPI_RC_OK,NULL}; |
CMPI_ContextOnStack eCtx(request->operationContext); | CMPI_ContextOnStack eCtx(request->operationContext); |
CMPI_ObjectPathOnStack eRef(objectPath); |
|
CMPI_ResultOnStack eRes(handler,pr.getBroker()); | CMPI_ResultOnStack eRes(handler,pr.getBroker()); |
CMPI_ThreadContext thr(pr.getBroker(),&eCtx); | CMPI_ThreadContext thr(pr.getBroker(),&eCtx); |
| |
CMPIPropertyList props(request->propertyList); | CMPIPropertyList props(request->propertyList); |
CString nameSpace = request->nameSpace.getString().getCString(); | CString nameSpace = request->nameSpace.getString().getCString(); |
|
CString className = request->className.getString().getCString(); |
| |
_setupCMPIContexts( | _setupCMPIContexts( |
&eCtx, | &eCtx, |
|
|
request->includeClassOrigin, | request->includeClassOrigin, |
true); | true); |
| |
|
// make target object path |
|
SCMOClass* scmoClass = |
|
mbGetSCMOClass( |
|
pr.getBroker(), |
|
(const char*)nameSpace, |
|
(const char*)className); |
|
if (0 == scmoClass) |
|
{ |
|
// This indicates a severe error, since we should't have come |
|
// here at all, if the class is invalid |
|
PEG_TRACE((TRC_PROVIDERMANAGER,Tracer::LEVEL1, |
|
"CMPIProviderManager::handleGetInstanceRequest - " |
|
"Failed to obtain CIMClass for Namespace: %s Classname: %s", |
|
(const char*) request->nameSpace.getString().getCString(), |
|
(const char*) request->className.getString().getCString())); |
|
|
|
CIMException cimException(CIM_ERR_NOT_FOUND); |
|
throw cimException; |
|
} |
|
|
|
SCMOInstance objectPath(*scmoClass,request->instanceName); |
|
objectPath.setHostName((const char*)System::getHostName().getCString()); |
|
CMPI_ObjectPathOnStack eRef(objectPath); |
|
|
CMPIProvider::pm_service_op_lock op_lock(&pr); | CMPIProvider::pm_service_op_lock op_lock(&pr); |
| |
PEG_TRACE(( | PEG_TRACE(( |
|
|
handler.setContext(response->operationContext); | handler.setContext(response->operationContext); |
} | } |
| |
if (rc.rc!=CMPI_RC_OK) |
_throwCIMException(rc, eRes.resError); |
{ |
|
CIMException cimException( |
|
(CIMStatusCode)rc.rc, |
|
rc.msg ? CMGetCharsPtr(rc.msg, NULL) : String::EMPTY); |
|
|
|
if (eRes.resError) |
|
{ |
|
for (CMPI_Error* currErr=eRes.resError; |
|
currErr!=NULL; |
|
currErr=currErr->nextError) |
|
{ |
|
cimException.addError( |
|
((CIMError*)currErr->hdl)->getInstance()); |
|
} |
|
} |
|
throw cimException; |
|
} |
|
} | } |
HandlerCatch(handler); | HandlerCatch(handler); |
| |
|
|
(const char*) request->nameSpace.getString().getCString(), | (const char*) request->nameSpace.getString().getCString(), |
(const char*) request->className.getString().getCString())); | (const char*) request->className.getString().getCString())); |
| |
// make target object path |
|
CIMObjectPath objectPath( |
|
System::getHostName(), |
|
request->nameSpace, |
|
request->className); |
|
| |
Boolean remote=false; | Boolean remote=false; |
OpProviderHolder ph; | OpProviderHolder ph; |
|
|
| |
CMPIStatus rc={CMPI_RC_OK,NULL}; | CMPIStatus rc={CMPI_RC_OK,NULL}; |
CMPI_ContextOnStack eCtx(request->operationContext); | CMPI_ContextOnStack eCtx(request->operationContext); |
CMPI_ObjectPathOnStack eRef(objectPath); |
|
CMPI_ResultOnStack eRes(handler,pr.getBroker()); | CMPI_ResultOnStack eRes(handler,pr.getBroker()); |
CMPI_ThreadContext thr(pr.getBroker(),&eCtx); | CMPI_ThreadContext thr(pr.getBroker(),&eCtx); |
CMPIPropertyList props(propertyList); | CMPIPropertyList props(propertyList); |
CString nameSpace = request->nameSpace.getString().getCString(); | CString nameSpace = request->nameSpace.getString().getCString(); |
|
CString className = request->className.getString().getCString(); |
| |
_setupCMPIContexts( | _setupCMPIContexts( |
&eCtx, | &eCtx, |
|
|
request->includeClassOrigin, | request->includeClassOrigin, |
true); | true); |
| |
|
// make target object path |
|
SCMOClass* scmoClass = |
|
mbGetSCMOClass( |
|
pr.getBroker(), |
|
(const char*)nameSpace, |
|
(const char*)className); |
|
if (0 == scmoClass) |
|
{ |
|
// This indicates a severe error, since we should't have come |
|
// here at all, if the class is invalid |
|
PEG_TRACE((TRC_PROVIDERMANAGER,Tracer::LEVEL1, |
|
"CMPIProviderManager::handleEnumerateInstancesRequest - " |
|
"Failed to obtain CIMClass for Namespace: %s Classname: %s", |
|
(const char*) nameSpace, |
|
(const char*) className)); |
|
|
|
CIMException cimException(CIM_ERR_NOT_FOUND); |
|
throw cimException; |
|
} |
|
|
|
SCMOInstance objectPath(*scmoClass); |
|
CMPI_ObjectPathOnStack eRef(objectPath); |
|
|
CMPIProvider::pm_service_op_lock op_lock(&pr); | CMPIProvider::pm_service_op_lock op_lock(&pr); |
| |
PEG_TRACE(( | PEG_TRACE(( |
|
|
handler.setContext(response->operationContext); | handler.setContext(response->operationContext); |
} | } |
| |
if (rc.rc!=CMPI_RC_OK) |
_throwCIMException(rc, eRes.resError); |
{ |
|
CIMException cimException( |
|
(CIMStatusCode)rc.rc, |
|
rc.msg ? CMGetCharsPtr(rc.msg, NULL) : String::EMPTY); |
|
|
|
if (eRes.resError) |
|
{ |
|
for (CMPI_Error* currErr=eRes.resError; |
|
currErr!=NULL; |
|
currErr=currErr->nextError) |
|
{ |
|
cimException.addError( |
|
((CIMError*)currErr->hdl)->getInstance()); |
|
} |
|
} |
|
throw cimException; |
|
} |
|
|
|
} | } |
HandlerCatch(handler); | HandlerCatch(handler); |
| |
|
|
(const char*) request->nameSpace.getString().getCString(), | (const char*) request->nameSpace.getString().getCString(), |
(const char*) request->className.getString().getCString())); | (const char*) request->className.getString().getCString())); |
| |
// make target object path |
|
CIMObjectPath objectPath( |
|
System::getHostName(), |
|
request->nameSpace, |
|
request->className); |
|
|
|
Boolean remote=false; | Boolean remote=false; |
OpProviderHolder ph; | OpProviderHolder ph; |
CString remoteInfo; | CString remoteInfo; |
|
|
| |
CMPIStatus rc={CMPI_RC_OK,NULL}; | CMPIStatus rc={CMPI_RC_OK,NULL}; |
CMPI_ContextOnStack eCtx(request->operationContext); | CMPI_ContextOnStack eCtx(request->operationContext); |
CMPI_ObjectPathOnStack eRef(objectPath); |
|
CMPI_ResultOnStack eRes(handler,pr.getBroker()); | CMPI_ResultOnStack eRes(handler,pr.getBroker()); |
CMPI_ThreadContext thr(pr.getBroker(),&eCtx); | CMPI_ThreadContext thr(pr.getBroker(),&eCtx); |
| |
CString nameSpace = request->nameSpace.getString().getCString(); | CString nameSpace = request->nameSpace.getString().getCString(); |
|
CString className = request->className.getString().getCString(); |
| |
_setupCMPIContexts( | _setupCMPIContexts( |
&eCtx, | &eCtx, |
|
|
false, | false, |
true); | true); |
| |
|
// make target object path |
|
SCMOClass* scmoClass = |
|
mbGetSCMOClass( |
|
pr.getBroker(), |
|
(const char*)nameSpace, |
|
(const char*)className); |
|
if (0 == scmoClass) |
|
{ |
|
// This indicates a severe error, since we should't have come |
|
// here at all, if the class is invalid |
|
PEG_TRACE((TRC_PROVIDERMANAGER,Tracer::LEVEL1, |
|
"CMPIProviderManager::handleEnumerateInstanceNamesRequest - " |
|
"Failed to obtain CIMClass for Namespace: %s Classname: %s", |
|
(const char*) request->nameSpace.getString().getCString(), |
|
(const char*) request->className.getString().getCString())); |
|
|
|
CIMException cimException(CIM_ERR_NOT_FOUND); |
|
throw cimException; |
|
} |
|
|
|
SCMOInstance objectPath(*scmoClass); |
|
CMPI_ObjectPathOnStack eRef(objectPath); |
|
|
CMPIProvider::pm_service_op_lock op_lock(&pr); | CMPIProvider::pm_service_op_lock op_lock(&pr); |
| |
PEG_TRACE(( | PEG_TRACE(( |
|
|
CMGetCharsPtr(cldata.value.string, NULL))))); | CMGetCharsPtr(cldata.value.string, NULL))))); |
handler.setContext(response->operationContext); | handler.setContext(response->operationContext); |
} | } |
|
_throwCIMException(rc, eRes.resError); |
if (rc.rc!=CMPI_RC_OK) |
|
{ |
|
CIMException cimException( |
|
(CIMStatusCode)rc.rc, |
|
rc.msg ? CMGetCharsPtr(rc.msg, NULL) : String::EMPTY); |
|
|
|
if (eRes.resError) |
|
{ |
|
for (CMPI_Error* currErr=eRes.resError; |
|
currErr!=NULL; |
|
currErr=currErr->nextError) |
|
{ |
|
cimException.addError( |
|
((CIMError*)currErr->hdl)->getInstance()); |
|
} |
|
} |
|
throw cimException; |
|
} |
|
} | } |
HandlerCatch(handler); | HandlerCatch(handler); |
| |
|
|
CMGetCharsPtr(cldata.value.string, NULL))))); | CMGetCharsPtr(cldata.value.string, NULL))))); |
handler.setContext(response->operationContext); | handler.setContext(response->operationContext); |
} | } |
|
_throwCIMException(rc, eRes.resError); |
if (rc.rc!=CMPI_RC_OK) |
|
{ |
|
CIMException cimException( |
|
(CIMStatusCode)rc.rc, |
|
rc.msg ? CMGetCharsPtr(rc.msg, NULL) : String::EMPTY); |
|
|
|
if (eRes.resError) |
|
{ |
|
for (CMPI_Error* currErr=eRes.resError; |
|
currErr!=NULL; |
|
currErr=currErr->nextError) |
|
{ |
|
cimException.addError( |
|
((CIMError*)currErr->hdl)->getInstance()); |
|
} |
|
} |
|
throw cimException; |
|
} |
|
} | } |
HandlerCatch(handler); | HandlerCatch(handler); |
| |
|
|
CMGetCharsPtr(cldata.value.string, NULL))))); | CMGetCharsPtr(cldata.value.string, NULL))))); |
handler.setContext(response->operationContext); | handler.setContext(response->operationContext); |
} | } |
|
_throwCIMException(rc, eRes.resError); |
if (rc.rc!=CMPI_RC_OK) |
|
{ |
|
CIMException cimException( |
|
(CIMStatusCode)rc.rc, |
|
rc.msg ? CMGetCharsPtr(rc.msg, NULL) : String::EMPTY); |
|
|
|
if (eRes.resError) |
|
{ |
|
for (CMPI_Error* currErr=eRes.resError; |
|
currErr!=NULL; |
|
currErr=currErr->nextError) |
|
{ |
|
cimException.addError( |
|
((CIMError*)currErr->hdl)->getInstance()); |
|
} |
|
} |
|
throw cimException; |
|
} |
|
} | } |
HandlerCatch(handler); | HandlerCatch(handler); |
| |
|
|
CMGetCharsPtr(cldata.value.string, NULL))))); | CMGetCharsPtr(cldata.value.string, NULL))))); |
handler.setContext(response->operationContext); | handler.setContext(response->operationContext); |
} | } |
|
_throwCIMException(rc, eRes.resError); |
if (rc.rc!=CMPI_RC_OK) |
|
{ |
|
CIMException cimException( |
|
(CIMStatusCode)rc.rc, |
|
rc.msg ? CMGetCharsPtr(rc.msg, NULL) : String::EMPTY); |
|
|
|
if (eRes.resError) |
|
{ |
|
for (CMPI_Error* currErr=eRes.resError; |
|
currErr!=NULL; |
|
currErr=currErr->nextError) |
|
{ |
|
cimException.addError( |
|
((CIMError*)currErr->hdl)->getInstance()); |
|
} |
|
} |
|
throw cimException; |
|
} |
|
} | } |
HandlerCatch(handler); | HandlerCatch(handler); |
| |
|
|
CMGetCharsPtr(cldata.value.string, NULL))))); | CMGetCharsPtr(cldata.value.string, NULL))))); |
handler.setContext(response->operationContext); | handler.setContext(response->operationContext); |
} | } |
|
_throwCIMException(rc, eRes.resError); |
if (rc.rc!=CMPI_RC_OK) |
|
{ |
|
CIMException cimException( |
|
(CIMStatusCode)rc.rc, |
|
rc.msg ? CMGetCharsPtr(rc.msg, NULL) : String::EMPTY); |
|
|
|
if (eRes.resError) |
|
{ |
|
for (CMPI_Error* currErr=eRes.resError; |
|
currErr!=NULL; |
|
currErr=currErr->nextError) |
|
{ |
|
cimException.addError( |
|
((CIMError*)currErr->hdl)->getInstance()); |
|
} |
|
} |
|
throw cimException; |
|
} |
|
| |
} | } |
HandlerCatch(handler); | HandlerCatch(handler); |
|
|
CMGetCharsPtr(cldata.value.string, NULL))))); | CMGetCharsPtr(cldata.value.string, NULL))))); |
handler.setContext(response->operationContext); | handler.setContext(response->operationContext); |
} | } |
|
_throwCIMException(rc, eRes.resError); |
if (rc.rc!=CMPI_RC_OK) |
|
{ |
|
CIMException cimException( |
|
(CIMStatusCode)rc.rc, |
|
rc.msg ? CMGetCharsPtr(rc.msg, NULL) : String::EMPTY); |
|
|
|
if (eRes.resError) |
|
{ |
|
for (CMPI_Error* currErr=eRes.resError; |
|
currErr!=NULL; |
|
currErr=currErr->nextError) |
|
{ |
|
cimException.addError( |
|
((CIMError*)currErr->hdl)->getInstance()); |
|
} |
|
} |
|
throw cimException; |
|
} |
|
} | } |
HandlerCatch(handler); | HandlerCatch(handler); |
| |
|
|
CMGetCharsPtr(cldata.value.string, NULL))))); | CMGetCharsPtr(cldata.value.string, NULL))))); |
handler.setContext(response->operationContext); | handler.setContext(response->operationContext); |
} | } |
|
_throwCIMException(rc, eRes.resError); |
if (rc.rc!=CMPI_RC_OK) |
|
{ |
|
CIMException cimException( |
|
(CIMStatusCode)rc.rc, |
|
rc.msg ? CMGetCharsPtr(rc.msg, NULL) : String::EMPTY); |
|
|
|
if (eRes.resError) |
|
{ |
|
for (CMPI_Error* currErr=eRes.resError; |
|
currErr!=NULL; |
|
currErr=currErr->nextError) |
|
{ |
|
cimException.addError( |
|
((CIMError*)currErr->hdl)->getInstance()); |
|
} |
|
} |
|
throw cimException; |
|
} |
|
} | } |
HandlerCatch(handler); | HandlerCatch(handler); |
| |
|
|
CMGetCharsPtr(cldata.value.string, NULL))))); | CMGetCharsPtr(cldata.value.string, NULL))))); |
handler.setContext(response->operationContext); | handler.setContext(response->operationContext); |
} | } |
|
_throwCIMException(rc, eRes.resError); |
if (rc.rc!=CMPI_RC_OK) |
|
{ |
|
CIMException cimException( |
|
(CIMStatusCode)rc.rc, |
|
rc.msg ? CMGetCharsPtr(rc.msg, NULL) : String::EMPTY); |
|
|
|
if (eRes.resError) |
|
{ |
|
for (CMPI_Error* currErr=eRes.resError; |
|
currErr!=NULL; |
|
currErr=currErr->nextError) |
|
{ |
|
cimException.addError( |
|
((CIMError*)currErr->hdl)->getInstance()); |
|
} |
|
} |
|
throw cimException; |
|
} |
|
} | } |
HandlerCatch(handler); | HandlerCatch(handler); |
| |
|
|
CMGetCharsPtr(cldata.value.string, NULL))))); | CMGetCharsPtr(cldata.value.string, NULL))))); |
handler.setContext(response->operationContext); | handler.setContext(response->operationContext); |
} | } |
|
_throwCIMException(rc, eRes.resError); |
if (rc.rc!=CMPI_RC_OK) |
|
{ |
|
CIMException cimException( |
|
(CIMStatusCode)rc.rc, |
|
rc.msg ? CMGetCharsPtr(rc.msg, NULL) : String::EMPTY); |
|
|
|
if (eRes.resError) |
|
{ |
|
for (CMPI_Error* currErr=eRes.resError; |
|
currErr!=NULL; |
|
currErr=currErr->nextError) |
|
{ |
|
cimException.addError( |
|
((CIMError*)currErr->hdl)->getInstance()); |
|
} |
|
} |
|
throw cimException; |
|
} |
|
} | } |
HandlerCatch(handler); | HandlerCatch(handler); |
| |
|
|
CMGetCharsPtr(cldata.value.string, NULL))))); | CMGetCharsPtr(cldata.value.string, NULL))))); |
handler.setContext(response->operationContext); | handler.setContext(response->operationContext); |
} | } |
|
_throwCIMException(rc, eRes.resError); |
if (rc.rc!=CMPI_RC_OK) |
|
{ |
|
CIMException cimException( |
|
(CIMStatusCode)rc.rc, |
|
rc.msg ? CMGetCharsPtr(rc.msg, NULL) : String::EMPTY); |
|
|
|
if (eRes.resError) |
|
{ |
|
for (CMPI_Error* currErr=eRes.resError; |
|
currErr!=NULL; |
|
currErr=currErr->nextError) |
|
{ |
|
cimException.addError( |
|
((CIMError*)currErr->hdl)->getInstance()); |
|
} |
|
} |
|
throw cimException; |
|
} |
|
| |
// Even if external normalization is enabled we don't normalize the | // Even if external normalization is enabled we don't normalize the |
// Embedded instances present in output args. Normalize them here. | // Embedded instances present in output args. Normalize them here. |
|
|
return className; | return className; |
} | } |
| |
|
void CMPIProviderManager::_throwCIMException( |
|
CMPIStatus rc, |
|
CMPI_Error* cmpiError) |
|
{ |
|
if (rc.rc!=CMPI_RC_OK) |
|
{ |
|
CIMException cimException( |
|
(CIMStatusCode)rc.rc, |
|
rc.msg ? CMGetCharsPtr(rc.msg, NULL) : String::EMPTY); |
|
if (cmpiError) |
|
{ |
|
for (CMPI_Error* currErr=cmpiError; |
|
currErr!=NULL; |
|
currErr=currErr->nextError) |
|
{ |
|
cimException.addError( |
|
((CIMError*)currErr->hdl)->getInstance()); |
|
} |
|
} |
|
throw cimException; |
|
} |
|
|
|
} |
|
|
Message * CMPIProviderManager::handleCreateSubscriptionRequest( | Message * CMPIProviderManager::handleCreateSubscriptionRequest( |
const Message * message) | const Message * message) |
{ | { |
|
|
request->operationContext.get( | request->operationContext.get( |
SubscriptionFilterConditionContainer::NAME); | SubscriptionFilterConditionContainer::NAME); |
| |
CIMOMHandleQueryContext *_context= |
CIMOMHandleQueryContext _context( |
new CIMOMHandleQueryContext( |
|
CIMNamespaceName( | CIMNamespaceName( |
request->nameSpace.getString()), | request->nameSpace.getString()), |
*pr.getCIMOMHandle()); | *pr.getCIMOMHandle()); |
| |
CMPI_SelectExp *eSelx=new CMPI_SelectExp( | CMPI_SelectExp *eSelx=new CMPI_SelectExp( |
request->operationContext, | request->operationContext, |
_context, |
&_context, |
request->query, | request->query, |
sub_cntr.getQueryLanguage()); | sub_cntr.getQueryLanguage()); |
| |
srec->eSelx=eSelx; | srec->eSelx=eSelx; |
srec->qContext=_context; |
|
| |
CMPI_ThreadContext thr(pr.getBroker(),&eCtx); | CMPI_ThreadContext thr(pr.getBroker(),&eCtx); |
| |
String lang(sub_cntr.getQueryLanguage()); | String lang(sub_cntr.getQueryLanguage()); |
CString className = _getClassNameFromQuery( | CString className = _getClassNameFromQuery( |
_context, |
&_context, |
request->query, | request->query, |
lang).getCString(); | lang).getCString(); |
| |
|
|
if (--srec->count<=0) | if (--srec->count<=0) |
{ | { |
selxTab.remove(sPath); | selxTab.remove(sPath); |
delete _context; |
|
delete eSelx; | delete eSelx; |
delete srec; | delete srec; |
} | } |
|
|
}; | }; |
| |
CMPI_SelectExp *eSelx=srec->eSelx; | CMPI_SelectExp *eSelx=srec->eSelx; |
CIMOMHandleQueryContext *qContext=srec->qContext; |
|
| |
CString className = eSelx->classNames[0].getClassName(). | CString className = eSelx->classNames[0].getClassName(). |
getString().getCString(); | getString().getCString(); |
|
|
| |
if (srec->count<=0) | if (srec->count<=0) |
{ | { |
delete qContext; |
|
delete eSelx; | delete eSelx; |
delete srec; | delete srec; |
} | } |
|
|
CMGetCharsPtr(cldata.value.string, NULL))))); | CMGetCharsPtr(cldata.value.string, NULL))))); |
handler.setContext(response->operationContext); | handler.setContext(response->operationContext); |
} | } |
|
_throwCIMException(rc, eRes.resError); |
if (rc.rc!=CMPI_RC_OK) |
|
{ |
|
CIMException cimException( |
|
(CIMStatusCode)rc.rc, |
|
rc.msg ? CMGetCharsPtr(rc.msg, NULL) : String::EMPTY); |
|
|
|
if (eRes.resError) |
|
{ |
|
for (CMPI_Error* currErr=eRes.resError; |
|
currErr!=NULL; |
|
currErr=currErr->nextError) |
|
{ |
|
cimException.addError( |
|
((CIMError*)currErr->hdl)->getInstance()); |
|
} |
|
} |
|
throw cimException; |
|
} |
|
| |
// Copy property value from instance to getProperty response | // Copy property value from instance to getProperty response |
CIMInstance& instance = GI_response->getResponseData().getCimInstance(); | CIMInstance& instance = GI_response->getResponseData().getCimInstance(); |
|
|
CMGetCharsPtr(cldata.value.string, NULL))))); | CMGetCharsPtr(cldata.value.string, NULL))))); |
handler.setContext(response->operationContext); | handler.setContext(response->operationContext); |
} | } |
|
_throwCIMException(rc, eRes.resError); |
if (rc.rc!=CMPI_RC_OK) |
|
{ |
|
CIMException cimException( |
|
(CIMStatusCode)rc.rc, |
|
rc.msg ? CMGetCharsPtr(rc.msg, NULL) : String::EMPTY); |
|
|
|
if (eRes.resError) |
|
{ |
|
for (CMPI_Error* currErr=eRes.resError; |
|
currErr!=NULL; |
|
currErr=currErr->nextError) |
|
{ |
|
cimException.addError( |
|
((CIMError*)currErr->hdl)->getInstance()); |
|
} |
|
} |
|
throw cimException; |
|
} |
|
} | } |
HandlerCatch(handler); | HandlerCatch(handler); |
| |