version 1.38, 2007/07/16 14:41:05
|
version 1.39, 2007/07/25 07:16:00
|
|
|
//============================================================================== | //============================================================================== |
// | // |
//%///////////////////////////////////////////////////////////////////////////// | //%///////////////////////////////////////////////////////////////////////////// |
//NOCHKSRC |
|
#include "CMPI_Version.h" | #include "CMPI_Version.h" |
| |
#include "CMPI_Broker.h" | #include "CMPI_Broker.h" |
|
|
| |
extern int _cmpi_trace; | extern int _cmpi_trace; |
| |
static CIMPropertyList getList(const char** l) { |
static CIMPropertyList getList(const char** l) |
|
{ |
CIMPropertyList pl; | CIMPropertyList pl; |
if (l) { |
if (l) |
|
{ |
Array<CIMName> n; | Array<CIMName> n; |
while (*l) { |
while (*l) |
|
{ |
n.append(*l++); | n.append(*l++); |
} | } |
pl.set(n); | pl.set(n); |
|
|
return pl; | return pl; |
} | } |
| |
CIMClass* mbGetClass(const CMPIBroker *mb, const CIMObjectPath &cop) { |
CIMClass* mbGetClass(const CMPIBroker *mb, const CIMObjectPath &cop) |
|
{ |
DDD(cout<<"--- mbGetClass()"<<endl); | DDD(cout<<"--- mbGetClass()"<<endl); |
mb=CM_BROKER; | mb=CM_BROKER; |
CMPI_Broker *xBroker=(CMPI_Broker*)mb; | CMPI_Broker *xBroker=(CMPI_Broker*)mb; |
String clsId=cop.getNameSpace().getString()+":"+cop.getClassName().getString(); |
String clsId = |
|
cop.getNameSpace().getString()+":"+cop.getClassName().getString(); |
CIMClass *ccp; | CIMClass *ccp; |
| |
{ | { |
ReadLock readLock (xBroker->rwsemClassCache); | ReadLock readLock (xBroker->rwsemClassCache); |
| |
if (xBroker->clsCache->lookup(clsId,ccp)) return ccp; |
if (xBroker->clsCache->lookup(clsId,ccp)) |
|
{ |
|
return ccp; |
|
} |
} | } |
| |
try { |
try |
|
{ |
WriteLock writeLock (xBroker->rwsemClassCache); | WriteLock writeLock (xBroker->rwsemClassCache); |
| |
if (xBroker->clsCache->lookup(clsId,ccp)) return ccp; |
if (xBroker->clsCache->lookup(clsId,ccp)) |
|
{ |
|
return ccp; |
|
} |
| |
CIMClass cc=CM_CIMOM(mb)->getClass( | CIMClass cc=CM_CIMOM(mb)->getClass( |
OperationContext(), | OperationContext(), |
|
|
(bool)1, | (bool)1, |
(bool)0, | (bool)0, |
CIMPropertyList()); | CIMPropertyList()); |
|
|
ccp=new CIMClass(cc); | ccp=new CIMClass(cc); |
xBroker->clsCache->insert(clsId,ccp); | xBroker->clsCache->insert(clsId,ccp); |
return ccp; | return ccp; |
} | } |
catch (const CIMException &e) { |
catch (const CIMException &e) |
DDD(cout<<"### exception: mbGetClass - code: "<<e.getCode()<<" msg: "<<e.getMessage()<<endl); |
{ |
|
DDD(cout<<"### exception: mbGetClass - code: "<<e.getCode() |
|
<<" msg: "<<e.getMessage()<<endl); |
} | } |
| |
return NULL; | return NULL; |
} | } |
| |
extern "C" { |
extern "C" |
|
{ |
| |
static CMPIInstance* mbGetInstance(const CMPIBroker *mb, const CMPIContext *ctx, |
static CMPIInstance* mbGetInstance( |
const CMPIObjectPath *cop, const char **properties, CMPIStatus *rc) { |
const CMPIBroker *mb, |
|
const CMPIContext *ctx, |
|
const CMPIObjectPath *cop, |
|
const char **properties, |
|
CMPIStatus *rc) |
|
{ |
DDD(cout<<"--- mbGetInstance()"<<endl); | DDD(cout<<"--- mbGetInstance()"<<endl); |
mb=CM_BROKER; | mb=CM_BROKER; |
CMPIFlags flgs=ctx->ft->getEntry(ctx,CMPIInvocationFlags,NULL).value.uint32; |
CMPIFlags flgs = |
|
ctx->ft->getEntry(ctx,CMPIInvocationFlags,NULL).value.uint32; |
const CIMPropertyList props=getList(properties); | const CIMPropertyList props=getList(properties); |
CIMObjectPath qop(String::EMPTY,CIMNamespaceName(), |
CIMObjectPath qop( |
|
String::EMPTY, |
|
CIMNamespaceName(), |
CM_ObjectPath(cop)->getClassName(), | CM_ObjectPath(cop)->getClassName(), |
CM_ObjectPath(cop)->getKeyBindings()); | CM_ObjectPath(cop)->getKeyBindings()); |
| |
AutoMutex mtx(((CMPI_Broker*)mb)->mtx); | AutoMutex mtx(((CMPI_Broker*)mb)->mtx); |
try { |
try |
|
{ |
CIMInstance ci=CM_CIMOM(mb)->getInstance( | CIMInstance ci=CM_CIMOM(mb)->getInstance( |
OperationContext(*CM_Context(ctx)), | OperationContext(*CM_Context(ctx)), |
CM_ObjectPath(cop)->getNameSpace(), | CM_ObjectPath(cop)->getNameSpace(), |
|
|
CM_IncludeQualifiers(flgs), | CM_IncludeQualifiers(flgs), |
CM_ClassOrigin(flgs), | CM_ClassOrigin(flgs), |
props); | props); |
|
|
ci.setPath(*CM_ObjectPath(cop)); | ci.setPath(*CM_ObjectPath(cop)); |
CMSetStatus(rc,CMPI_RC_OK); | CMSetStatus(rc,CMPI_RC_OK); |
return reinterpret_cast<CMPIInstance*>(new CMPI_Object(new CIMInstance(ci))); |
return reinterpret_cast<CMPIInstance*>( |
|
new CMPI_Object(new CIMInstance(ci))); |
} | } |
catch (const CIMException &e) { |
catch (const CIMException &e) |
DDD(cout<<"### exception: mbGetInstance - code: "<<e.getCode()<<" msg: "<<e.getMessage()<<endl); |
{ |
if (rc) CMSetStatusWithString(rc,(CMPIrc)e.getCode(), |
DDD(cout<<"### exception: mbGetInstance - code: "<<e.getCode() |
|
<<" msg: "<<e.getMessage()<<endl); |
|
if (rc) |
|
{ |
|
CMSetStatusWithString( |
|
rc, |
|
(CMPIrc)e.getCode(), |
(CMPIString*)string2CMPIString(e.getMessage())); | (CMPIString*)string2CMPIString(e.getMessage())); |
|
} |
return NULL; | return NULL; |
} | } |
// Code flow should never get here. | // Code flow should never get here. |
} | } |
| |
static CMPIObjectPath* mbCreateInstance(const CMPIBroker *mb, const CMPIContext *ctx, |
static CMPIObjectPath* mbCreateInstance( |
const CMPIObjectPath *cop, const CMPIInstance *ci, CMPIStatus *rc) { |
const CMPIBroker *mb, |
|
const CMPIContext *ctx, |
|
const CMPIObjectPath *cop, |
|
const CMPIInstance *ci, |
|
CMPIStatus *rc) |
|
{ |
DDD(cout<<"--- mbCreateInstance()"<<endl); | DDD(cout<<"--- mbCreateInstance()"<<endl); |
mb=CM_BROKER; | mb=CM_BROKER; |
| |
AutoMutex mtx(((CMPI_Broker*)mb)->mtx); | AutoMutex mtx(((CMPI_Broker*)mb)->mtx); |
try { |
try |
|
{ |
CIMObjectPath ncop=CM_CIMOM(mb)->createInstance( | CIMObjectPath ncop=CM_CIMOM(mb)->createInstance( |
OperationContext(*CM_Context(ctx)), | OperationContext(*CM_Context(ctx)), |
CM_ObjectPath(cop)->getNameSpace(), | CM_ObjectPath(cop)->getNameSpace(), |
*CM_Instance(ci)); | *CM_Instance(ci)); |
CMSetStatus(rc,CMPI_RC_OK); | CMSetStatus(rc,CMPI_RC_OK); |
return reinterpret_cast<CMPIObjectPath*>(new CMPI_Object(new CIMObjectPath(ncop))); |
return reinterpret_cast<CMPIObjectPath*>( |
|
new CMPI_Object(new CIMObjectPath(ncop))); |
} | } |
catch (const CIMException &e) { |
catch (const CIMException &e) |
DDD(cout<<"### exception: mbCreateInstance - code: "<<e.getCode()<<" msg: "<<e.getMessage()<<endl); |
{ |
if (rc) CMSetStatusWithString(rc,(CMPIrc)e.getCode(), |
DDD(cout<<"### exception: mbCreateInstance - code: "<<e.getCode() |
|
<<" msg: "<<e.getMessage()<<endl); |
|
if (rc) |
|
{ |
|
CMSetStatusWithString( |
|
rc,(CMPIrc)e.getCode(), |
(CMPIString*)string2CMPIString(e.getMessage())); | (CMPIString*)string2CMPIString(e.getMessage())); |
|
} |
return NULL; | return NULL; |
} | } |
// Code flow should never get here. | // Code flow should never get here. |
} | } |
| |
static CMPIStatus mbModifyInstance(const CMPIBroker *mb, const CMPIContext *ctx, |
static CMPIStatus mbModifyInstance( |
const CMPIObjectPath *cop, const CMPIInstance *ci,const char ** properties) { |
const CMPIBroker *mb, |
|
const CMPIContext *ctx, |
|
const CMPIObjectPath *cop, |
|
const CMPIInstance *ci, |
|
const char ** properties) |
|
{ |
DDD(cout<<"--- mbSetInstance()"<<endl); | DDD(cout<<"--- mbSetInstance()"<<endl); |
mb=CM_BROKER; | mb=CM_BROKER; |
CMPIFlags flgs=ctx->ft->getEntry(ctx,CMPIInvocationFlags,NULL).value.uint32; |
CMPIFlags flgs = |
|
ctx->ft->getEntry(ctx,CMPIInvocationFlags,NULL).value.uint32; |
const CIMPropertyList props=getList(properties); | const CIMPropertyList props=getList(properties); |
| |
AutoMutex mtx(((CMPI_Broker*)mb)->mtx); | AutoMutex mtx(((CMPI_Broker*)mb)->mtx); |
try { |
try |
|
{ |
CIMInstance cmi(*CM_Instance(ci)); | CIMInstance cmi(*CM_Instance(ci)); |
cmi.setPath(*CM_ObjectPath(cop)); | cmi.setPath(*CM_ObjectPath(cop)); |
CM_CIMOM(mb)->modifyInstance( | CM_CIMOM(mb)->modifyInstance( |
|
|
CM_IncludeQualifiers(flgs), | CM_IncludeQualifiers(flgs), |
props); | props); |
} | } |
catch (const CIMException &e) { |
catch (const CIMException &e) |
DDD(cout<<"### exception: mbSetInstance - code: "<<e.getCode()<<" msg: "<<e.getMessage()<<endl); |
{ |
CMReturnWithString((CMPIrc)e.getCode(), |
DDD(cout<<"### exception: mbSetInstance - code: "<<e.getCode() |
|
<<" msg: "<<e.getMessage()<<endl); |
|
CMReturnWithString( |
|
(CMPIrc)e.getCode(), |
(CMPIString*)string2CMPIString(e.getMessage())); | (CMPIString*)string2CMPIString(e.getMessage())); |
} | } |
CMReturn(CMPI_RC_OK); | CMReturn(CMPI_RC_OK); |
} | } |
| |
static CMPIStatus mbDeleteInstance (const CMPIBroker *mb, const CMPIContext *ctx, |
static CMPIStatus mbDeleteInstance( |
const CMPIObjectPath *cop) { |
const CMPIBroker *mb, |
|
const CMPIContext *ctx, |
|
const CMPIObjectPath *cop) |
|
{ |
DDD(cout<<"--- mbDeleteInstance()"<<endl); | DDD(cout<<"--- mbDeleteInstance()"<<endl); |
mb=CM_BROKER; | mb=CM_BROKER; |
CIMObjectPath qop(String::EMPTY,CIMNamespaceName(), |
CIMObjectPath qop( |
|
String::EMPTY,CIMNamespaceName(), |
CM_ObjectPath(cop)->getClassName(), | CM_ObjectPath(cop)->getClassName(), |
CM_ObjectPath(cop)->getKeyBindings()); | CM_ObjectPath(cop)->getKeyBindings()); |
| |
AutoMutex mtx(((CMPI_Broker*)mb)->mtx); | AutoMutex mtx(((CMPI_Broker*)mb)->mtx); |
try { |
try |
|
{ |
CM_CIMOM(mb)->deleteInstance( | CM_CIMOM(mb)->deleteInstance( |
OperationContext(*CM_Context(ctx)), | OperationContext(*CM_Context(ctx)), |
CM_ObjectPath(cop)->getNameSpace(), | CM_ObjectPath(cop)->getNameSpace(), |
qop); //*CM_ObjectPath(cop)); | qop); //*CM_ObjectPath(cop)); |
} | } |
catch (const CIMException &e) { |
catch (const CIMException &e) |
DDD(cout<<"### exception: mbDeleteInstance - code: "<<e.getCode()<<" msg: "<<e.getMessage()<<endl); |
{ |
CMReturnWithString((CMPIrc)e.getCode(), |
DDD(cout<<"### exception: mbDeleteInstance - code: "<<e.getCode() |
|
<<" msg: "<<e.getMessage()<<endl); |
|
CMReturnWithString( |
|
(CMPIrc)e.getCode(), |
(CMPIString*)string2CMPIString(e.getMessage())); | (CMPIString*)string2CMPIString(e.getMessage())); |
} | } |
CMReturn(CMPI_RC_OK); | CMReturn(CMPI_RC_OK); |
} | } |
| |
static CMPIEnumeration* mbExecQuery(const CMPIBroker *mb, |
static CMPIEnumeration* mbExecQuery( |
|
const CMPIBroker *mb, |
const CMPIContext *ctx, | const CMPIContext *ctx, |
const CMPIObjectPath *cop, | const CMPIObjectPath *cop, |
const char *query, const char *lang, CMPIStatus *rc) { |
const char *query, const char *lang, CMPIStatus *rc) |
|
{ |
DDD(cout<<"--- mbExecQuery()"<<endl); | DDD(cout<<"--- mbExecQuery()"<<endl); |
mb=CM_BROKER; | mb=CM_BROKER; |
| |
AutoMutex mtx(((CMPI_Broker*)mb)->mtx); | AutoMutex mtx(((CMPI_Broker*)mb)->mtx); |
try { |
try |
|
{ |
Array<CIMObject> const &en=CM_CIMOM(mb)->execQuery( | Array<CIMObject> const &en=CM_CIMOM(mb)->execQuery( |
OperationContext(*CM_Context(ctx)), | OperationContext(*CM_Context(ctx)), |
CM_ObjectPath(cop)->getNameSpace(), | CM_ObjectPath(cop)->getNameSpace(), |
|
|
String(query)); | String(query)); |
CMSetStatus(rc,CMPI_RC_OK); | CMSetStatus(rc,CMPI_RC_OK); |
| |
return reinterpret_cast<CMPIEnumeration*> (new CMPI_Object( |
return reinterpret_cast<CMPIEnumeration*> ( |
|
new CMPI_Object( |
new CMPI_ObjEnumeration(new Array<CIMObject>(en)))); | new CMPI_ObjEnumeration(new Array<CIMObject>(en)))); |
} | } |
catch (const CIMException &e) { |
catch (const CIMException &e) |
DDD(cout<<"### exception: mbExecQuery - code: "<<e.getCode()<<" msg: "<<e.getMessage()<<endl); |
{ |
if (rc) CMSetStatusWithString(rc,(CMPIrc)e.getCode(), |
DDD(cout<<"### exception: mbExecQuery - code: "<<e.getCode() |
|
<<" msg: "<<e.getMessage()<<endl); |
|
if (rc) |
|
{ |
|
CMSetStatusWithString( |
|
rc, |
|
(CMPIrc)e.getCode(), |
(CMPIString*)string2CMPIString(e.getMessage())); | (CMPIString*)string2CMPIString(e.getMessage())); |
|
} |
return NULL; | return NULL; |
} | } |
// Code flow should never get here. | // Code flow should never get here. |
} | } |
| |
static CMPIEnumeration* mbEnumInstances(const CMPIBroker *mb, const CMPIContext *ctx, |
static CMPIEnumeration* mbEnumInstances( |
const CMPIObjectPath *cop, const char **properties, CMPIStatus *rc) { |
const CMPIBroker *mb, |
|
const CMPIContext *ctx, |
|
const CMPIObjectPath *cop, |
|
const char **properties, |
|
CMPIStatus *rc) |
|
{ |
DDD(cout<<"--- mbEnumInstances()"<<endl); | DDD(cout<<"--- mbEnumInstances()"<<endl); |
mb=CM_BROKER; | mb=CM_BROKER; |
| |
CMPIFlags flgs=ctx->ft->getEntry(ctx,CMPIInvocationFlags,NULL).value.uint32; |
CMPIFlags flgs = |
|
ctx->ft->getEntry(ctx,CMPIInvocationFlags,NULL).value.uint32; |
const CIMPropertyList props=getList(properties); | const CIMPropertyList props=getList(properties); |
| |
AutoMutex mtx(((CMPI_Broker*)mb)->mtx); | AutoMutex mtx(((CMPI_Broker*)mb)->mtx); |
try { |
try |
Array<CIMInstance> const &en=CM_CIMOM(mb)->enumerateInstances( |
{ |
|
Array<CIMInstance> const &en = |
|
CM_CIMOM(mb)->enumerateInstances( |
OperationContext(*CM_Context(ctx)), | OperationContext(*CM_Context(ctx)), |
CM_ObjectPath(cop)->getNameSpace(), | CM_ObjectPath(cop)->getNameSpace(), |
CM_ObjectPath(cop)->getClassName(), | CM_ObjectPath(cop)->getClassName(), |
|
|
CM_IncludeQualifiers(flgs), | CM_IncludeQualifiers(flgs), |
CM_ClassOrigin(flgs), | CM_ClassOrigin(flgs), |
props); | props); |
|
|
CMSetStatus(rc,CMPI_RC_OK); | CMSetStatus(rc,CMPI_RC_OK); |
| |
// Workaround for bugzilla 4677 | // Workaround for bugzilla 4677 |
// When running out of process the returned instances don't contain | // When running out of process the returned instances don't contain |
// a name space. Create a writable copy of the array and add the | // a name space. Create a writable copy of the array and add the |
// namespace from the input parameters. | // namespace from the input parameters. |
|
|
Array<CIMInstance> * aInst = new Array<CIMInstance>(en); | Array<CIMInstance> * aInst = new Array<CIMInstance>(en); |
for (unsigned int index=0;index < aInst->size(); index++) | for (unsigned int index=0;index < aInst->size(); index++) |
{ | { |
|
|
(*aInst)[index].setPath(orgCop); | (*aInst)[index].setPath(orgCop); |
} | } |
| |
return reinterpret_cast<CMPIEnumeration*> |
return reinterpret_cast<CMPIEnumeration*>( |
(new CMPI_Object(new CMPI_InstEnumeration(aInst))); |
new CMPI_Object(new CMPI_InstEnumeration(aInst))); |
} | } |
catch (const CIMException &e) { |
catch (const CIMException &e) |
DDD(cout<<"### exception: mbEnumInstances - code: "<<e.getCode()<<" msg: "<<e.getMessage()<<endl); |
{ |
if (rc) CMSetStatusWithString(rc,(CMPIrc)e.getCode(), |
DDD(cout<<"### exception: mbEnumInstances - code: "<<e.getCode() |
|
<<" msg: "<<e.getMessage()<<endl); |
|
if (rc) |
|
{ |
|
CMSetStatusWithString( |
|
rc, |
|
(CMPIrc)e.getCode(), |
(CMPIString*)string2CMPIString(e.getMessage())); | (CMPIString*)string2CMPIString(e.getMessage())); |
|
} |
return NULL; | return NULL; |
} | } |
// Code flow should never get here. | // Code flow should never get here. |
} | } |
| |
static CMPIEnumeration* mbEnumInstanceNames(const CMPIBroker *mb, const CMPIContext *ctx, |
static CMPIEnumeration* mbEnumInstanceNames( |
const CMPIObjectPath *cop, CMPIStatus *rc) { |
const CMPIBroker *mb, |
|
const CMPIContext *ctx, |
|
const CMPIObjectPath *cop, |
|
CMPIStatus *rc) |
|
{ |
DDD(cout<<"--- mbEnumInstanceNames()"<<endl); | DDD(cout<<"--- mbEnumInstanceNames()"<<endl); |
mb=CM_BROKER; | mb=CM_BROKER; |
| |
AutoMutex mtx(((CMPI_Broker*)mb)->mtx); | AutoMutex mtx(((CMPI_Broker*)mb)->mtx); |
try { |
try |
Array<CIMObjectPath> const &en=CM_CIMOM(mb)->enumerateInstanceNames( |
{ |
|
Array<CIMObjectPath> const &en = |
|
CM_CIMOM(mb)->enumerateInstanceNames( |
OperationContext(*CM_Context(ctx)), | OperationContext(*CM_Context(ctx)), |
CM_ObjectPath(cop)->getNameSpace(), | CM_ObjectPath(cop)->getNameSpace(), |
CM_ObjectPath(cop)->getClassName()); | CM_ObjectPath(cop)->getClassName()); |
|
|
Array<CIMObjectPath> * aObj = new Array<CIMObjectPath>(en); | Array<CIMObjectPath> * aObj = new Array<CIMObjectPath>(en); |
for (unsigned int index=0;index < aObj->size(); index++) | for (unsigned int index=0;index < aObj->size(); index++) |
{ | { |
(*aObj)[index].setNameSpace(CM_ObjectPath(cop)->getNameSpace()); |
(*aObj)[index].setNameSpace( |
|
CM_ObjectPath(cop)->getNameSpace()); |
} | } |
return reinterpret_cast<CMPIEnumeration*> |
return reinterpret_cast<CMPIEnumeration*>( |
(new CMPI_Object(new CMPI_OpEnumeration(aObj))); |
new CMPI_Object(new CMPI_OpEnumeration(aObj))); |
} | } |
catch (const CIMException &e) { |
catch (const CIMException &e) |
DDD(cout<<"### exception: mbEnumInstances - code: "<<e.getCode()<<" msg: "<<e.getMessage()<<endl); |
{ |
if (rc) CMSetStatusWithString(rc,(CMPIrc)e.getCode(), |
DDD(cout<<"### exception: mbEnumInstances - code: "<<e.getCode() |
|
<<" msg: "<<e.getMessage()<<endl); |
|
if (rc) |
|
{ |
|
CMSetStatusWithString( |
|
rc, |
|
(CMPIrc)e.getCode(), |
(CMPIString*)string2CMPIString(e.getMessage())); | (CMPIString*)string2CMPIString(e.getMessage())); |
|
} |
return NULL; | return NULL; |
} | } |
// Code flow should never get here. | // Code flow should never get here. |
} | } |
| |
static CMPIEnumeration* mbAssociators(const CMPIBroker *mb, const CMPIContext *ctx, |
static CMPIEnumeration* mbAssociators( |
const CMPIObjectPath *cop, const char *assocClass, const char *resultClass, |
const CMPIBroker *mb, |
const char *role, const char *resultRole, const char **properties, CMPIStatus *rc) { |
const CMPIContext *ctx, |
|
const CMPIObjectPath *cop, |
|
const char *assocClass, |
|
const char *resultClass, |
|
const char *role, |
|
const char *resultRole, |
|
const char **properties, |
|
CMPIStatus *rc) |
|
{ |
DDD(cout<<"--- mbAssociators()"<<endl); | DDD(cout<<"--- mbAssociators()"<<endl); |
mb=CM_BROKER; | mb=CM_BROKER; |
CMPIFlags flgs=ctx->ft->getEntry(ctx,CMPIInvocationFlags,NULL).value.uint32; |
CMPIFlags flgs = |
|
ctx->ft->getEntry(ctx,CMPIInvocationFlags,NULL).value.uint32; |
const CIMPropertyList props=getList(properties); | const CIMPropertyList props=getList(properties); |
CIMObjectPath qop(String::EMPTY,CIMNamespaceName(), |
CIMObjectPath qop( |
|
String::EMPTY,CIMNamespaceName(), |
CM_ObjectPath(cop)->getClassName(), | CM_ObjectPath(cop)->getClassName(), |
CM_ObjectPath(cop)->getKeyBindings()); | CM_ObjectPath(cop)->getKeyBindings()); |
| |
AutoMutex mtx(((CMPI_Broker*)mb)->mtx); | AutoMutex mtx(((CMPI_Broker*)mb)->mtx); |
try { |
try |
Array<CIMObject> const &en=CM_CIMOM(mb)->associators( |
{ |
|
Array<CIMObject> const &en = |
|
CM_CIMOM(mb)->associators( |
OperationContext(*CM_Context(ctx)), | OperationContext(*CM_Context(ctx)), |
CM_ObjectPath(cop)->getNameSpace(), | CM_ObjectPath(cop)->getNameSpace(), |
qop, | qop, |
|
|
CM_IncludeQualifiers(flgs), | CM_IncludeQualifiers(flgs), |
CM_ClassOrigin(flgs), | CM_ClassOrigin(flgs), |
props); | props); |
|
|
CMSetStatus(rc,CMPI_RC_OK); | CMSetStatus(rc,CMPI_RC_OK); |
| |
// Workaround for bugzilla 4677 | // Workaround for bugzilla 4677 |
|
|
orgCop.setNameSpace(CM_ObjectPath(cop)->getNameSpace()); | orgCop.setNameSpace(CM_ObjectPath(cop)->getNameSpace()); |
(*aInst)[index].setPath(orgCop); | (*aInst)[index].setPath(orgCop); |
} | } |
return reinterpret_cast<CMPIEnumeration*> |
return reinterpret_cast<CMPIEnumeration*>( |
(new CMPI_Object(new CMPI_ObjEnumeration(aInst))); |
new CMPI_Object(new CMPI_ObjEnumeration(aInst))); |
} | } |
catch (const CIMException &e) { |
catch (const CIMException &e) |
DDD(cout<<"### exception: mbAssociators - code: "<<e.getCode()<<" msg: "<<e.getMessage()<<endl); |
{ |
if (rc) CMSetStatusWithString(rc,(CMPIrc)e.getCode(), |
DDD(cout<<"### exception: mbAssociators - code: "<<e.getCode() |
|
<<" msg: "<<e.getMessage()<<endl); |
|
if (rc) |
|
{ |
|
CMSetStatusWithString( |
|
rc, |
|
(CMPIrc)e.getCode(), |
(CMPIString*)string2CMPIString(e.getMessage())); | (CMPIString*)string2CMPIString(e.getMessage())); |
|
} |
return NULL; | return NULL; |
} | } |
// Code flow should never get here. | // Code flow should never get here. |
} | } |
| |
static CMPIEnumeration* mbAssociatorNames(const CMPIBroker *mb, |
static CMPIEnumeration* mbAssociatorNames( |
|
const CMPIBroker *mb, |
const CMPIContext *ctx, | const CMPIContext *ctx, |
const CMPIObjectPath *cop, | const CMPIObjectPath *cop, |
const char *assocClass, | const char *assocClass, |
const char *resultClass, | const char *resultClass, |
const char *role, const char *resultRole, CMPIStatus *rc) { |
const char *role, |
|
const char *resultRole, |
|
CMPIStatus *rc) |
|
{ |
DDD(cout<<"--- mbAssociatorsNames()"<<endl); | DDD(cout<<"--- mbAssociatorsNames()"<<endl); |
mb=CM_BROKER; | mb=CM_BROKER; |
CIMObjectPath qop(String::EMPTY,CIMNamespaceName(), |
CIMObjectPath qop( |
|
String::EMPTY,CIMNamespaceName(), |
CM_ObjectPath(cop)->getClassName(), | CM_ObjectPath(cop)->getClassName(), |
CM_ObjectPath(cop)->getKeyBindings()); | CM_ObjectPath(cop)->getKeyBindings()); |
| |
AutoMutex mtx(((CMPI_Broker*)mb)->mtx); | AutoMutex mtx(((CMPI_Broker*)mb)->mtx); |
try { |
try |
Array<CIMObjectPath> const &en=CM_CIMOM(mb)->associatorNames( |
{ |
|
Array<CIMObjectPath> const &en = |
|
CM_CIMOM(mb)->associatorNames( |
OperationContext(*CM_Context(ctx)), | OperationContext(*CM_Context(ctx)), |
CM_ObjectPath(cop)->getNameSpace(), | CM_ObjectPath(cop)->getNameSpace(), |
qop, | qop, |
|
|
Array<CIMObjectPath> * aObj = new Array<CIMObjectPath>(en); | Array<CIMObjectPath> * aObj = new Array<CIMObjectPath>(en); |
for (unsigned int index=0;index < aObj->size(); index++) | for (unsigned int index=0;index < aObj->size(); index++) |
{ | { |
(*aObj)[index].setNameSpace(CM_ObjectPath(cop)->getNameSpace()); |
(*aObj)[index].setNameSpace( |
|
CM_ObjectPath(cop)->getNameSpace()); |
} | } |
return reinterpret_cast<CMPIEnumeration*> |
return reinterpret_cast<CMPIEnumeration*>( |
(new CMPI_Object(new CMPI_OpEnumeration(aObj))); |
new CMPI_Object(new CMPI_OpEnumeration(aObj))); |
| |
} | } |
catch (const CIMException &e) { |
catch (const CIMException &e) |
DDD(cout<<"### exception: mbAssociatorsNames - code: "<<e.getCode()<<" msg: "<<e.getMessage()<<endl); |
{ |
if (rc) CMSetStatusWithString(rc,(CMPIrc)e.getCode(), |
DDD(cout<<"### exception: mbAssociatorsNames - code: "<<e.getCode() |
|
<<" msg: "<<e.getMessage()<<endl); |
|
if (rc) |
|
{ |
|
CMSetStatusWithString( |
|
rc, |
|
(CMPIrc)e.getCode(), |
(CMPIString*)string2CMPIString(e.getMessage())); | (CMPIString*)string2CMPIString(e.getMessage())); |
|
} |
return NULL; | return NULL; |
} | } |
// Code flow should never get here. | // Code flow should never get here. |
} | } |
| |
static CMPIEnumeration* mbReferences(const CMPIBroker *mb, const CMPIContext *ctx, |
static CMPIEnumeration* mbReferences( |
const CMPIObjectPath *cop, const char *resultClass, const char *role , |
const CMPIBroker *mb, |
const char **properties, CMPIStatus *rc) { |
const CMPIContext *ctx, |
|
const CMPIObjectPath *cop, |
|
const char *resultClass, |
|
const char *role , |
|
const char **properties, |
|
CMPIStatus *rc) |
|
{ |
DDD(cout<<"--- mbReferences()"<<endl); | DDD(cout<<"--- mbReferences()"<<endl); |
mb=CM_BROKER; | mb=CM_BROKER; |
CMPIFlags flgs=ctx->ft->getEntry(ctx,CMPIInvocationFlags,NULL).value.uint32; |
CMPIFlags flgs = |
|
ctx->ft->getEntry(ctx,CMPIInvocationFlags,NULL).value.uint32; |
CIMPropertyList props=getList(properties); | CIMPropertyList props=getList(properties); |
CIMObjectPath qop(String::EMPTY,CIMNamespaceName(), |
CIMObjectPath qop( |
|
String::EMPTY, |
|
CIMNamespaceName(), |
CM_ObjectPath(cop)->getClassName(), | CM_ObjectPath(cop)->getClassName(), |
CM_ObjectPath(cop)->getKeyBindings()); | CM_ObjectPath(cop)->getKeyBindings()); |
| |
AutoMutex mtx(((CMPI_Broker*)mb)->mtx); | AutoMutex mtx(((CMPI_Broker*)mb)->mtx); |
try { |
try |
Array<CIMObject> const &en=CM_CIMOM(mb)->references( |
{ |
|
Array<CIMObject> const &en = |
|
CM_CIMOM(mb)->references( |
OperationContext(*CM_Context(ctx)), | OperationContext(*CM_Context(ctx)), |
CM_ObjectPath(cop)->getNameSpace(), | CM_ObjectPath(cop)->getNameSpace(), |
qop, | qop, |
|
|
CM_IncludeQualifiers(flgs), | CM_IncludeQualifiers(flgs), |
CM_ClassOrigin(flgs), | CM_ClassOrigin(flgs), |
props); | props); |
|
|
CMSetStatus(rc,CMPI_RC_OK); | CMSetStatus(rc,CMPI_RC_OK); |
// Workaround for bugzilla 4677 | // Workaround for bugzilla 4677 |
// When running out of process the returned instances don't contain | // When running out of process the returned instances don't contain |
|
|
orgCop.setNameSpace(CM_ObjectPath(cop)->getNameSpace()); | orgCop.setNameSpace(CM_ObjectPath(cop)->getNameSpace()); |
(*aInst)[index].setPath(orgCop); | (*aInst)[index].setPath(orgCop); |
} | } |
return reinterpret_cast<CMPIEnumeration*> |
return reinterpret_cast<CMPIEnumeration*>( |
(new CMPI_Object(new CMPI_ObjEnumeration(aInst))); |
new CMPI_Object(new CMPI_ObjEnumeration(aInst))); |
} | } |
catch (const CIMException &e) { |
catch (const CIMException &e) |
DDD(cout<<"### exception: mbReferences - code: "<<e.getCode()<<" msg: "<<e.getMessage()<<endl); |
{ |
if (rc) CMSetStatusWithString(rc,(CMPIrc)e.getCode(), |
DDD(cout<<"### exception: mbReferences - code: "<<e.getCode() |
|
<<" msg: "<<e.getMessage()<<endl); |
|
if (rc) |
|
{ |
|
CMSetStatusWithString( |
|
rc, |
|
(CMPIrc)e.getCode(), |
(CMPIString*)string2CMPIString(e.getMessage())); | (CMPIString*)string2CMPIString(e.getMessage())); |
|
} |
return NULL; | return NULL; |
} | } |
// Code flow should never get here. | // Code flow should never get here. |
} | } |
| |
static CMPIEnumeration* mbReferenceNames(const CMPIBroker *mb, const CMPIContext *ctx, |
static CMPIEnumeration* mbReferenceNames( |
const CMPIObjectPath *cop, const char *resultClass, const char *role, |
const CMPIBroker *mb, |
CMPIStatus *rc) { |
const CMPIContext *ctx, |
|
const CMPIObjectPath *cop, |
|
const char *resultClass, |
|
const char *role, |
|
CMPIStatus *rc) |
|
{ |
DDD(cout<<"--- mbReferencesNames()"<<endl); | DDD(cout<<"--- mbReferencesNames()"<<endl); |
mb=CM_BROKER; | mb=CM_BROKER; |
CIMObjectPath qop(String::EMPTY,CIMNamespaceName(), |
CIMObjectPath qop( |
|
String::EMPTY, |
|
CIMNamespaceName(), |
CM_ObjectPath(cop)->getClassName(), | CM_ObjectPath(cop)->getClassName(), |
CM_ObjectPath(cop)->getKeyBindings()); | CM_ObjectPath(cop)->getKeyBindings()); |
| |
AutoMutex mtx(((CMPI_Broker*)mb)->mtx); | AutoMutex mtx(((CMPI_Broker*)mb)->mtx); |
try { |
try |
Array<CIMObjectPath> const &en=CM_CIMOM(mb)->referenceNames( |
{ |
|
Array<CIMObjectPath> const &en = |
|
CM_CIMOM(mb)->referenceNames( |
OperationContext(*CM_Context(ctx)), | OperationContext(*CM_Context(ctx)), |
CM_ObjectPath(cop)->getNameSpace(), | CM_ObjectPath(cop)->getNameSpace(), |
qop, | qop, |
|
|
Array<CIMObjectPath> * aObj = new Array<CIMObjectPath>(en); | Array<CIMObjectPath> * aObj = new Array<CIMObjectPath>(en); |
for (unsigned int index=0;index < aObj->size(); index++) | for (unsigned int index=0;index < aObj->size(); index++) |
{ | { |
(*aObj)[index].setNameSpace(CM_ObjectPath(cop)->getNameSpace()); |
(*aObj)[index].setNameSpace( |
|
CM_ObjectPath(cop)->getNameSpace()); |
} | } |
return reinterpret_cast<CMPIEnumeration*> |
return reinterpret_cast<CMPIEnumeration*>( |
(new CMPI_Object(new CMPI_OpEnumeration(aObj))); |
new CMPI_Object(new CMPI_OpEnumeration(aObj))); |
} | } |
catch (const CIMException &e) { |
catch (const CIMException &e) |
DDD(cout<<"### exception: mbReferencesNames - code: "<<e.getCode()<<" msg: "<<e.getMessage()<<endl); |
{ |
if (rc) CMSetStatusWithString(rc,(CMPIrc)e.getCode(), |
DDD(cout<<"### exception: mbReferencesNames - code: "<<e.getCode() |
|
<<" msg: "<<e.getMessage()<<endl); |
|
if (rc) |
|
{ |
|
CMSetStatusWithString( |
|
rc, |
|
(CMPIrc)e.getCode(), |
(CMPIString*)string2CMPIString(e.getMessage())); | (CMPIString*)string2CMPIString(e.getMessage())); |
|
} |
return NULL; | return NULL; |
} | } |
// Code flow should never get here. | // Code flow should never get here. |
|
|
| |
#define CM_Args(args) ((Array<CIMParamValue>*)args->hdl) | #define CM_Args(args) ((Array<CIMParamValue>*)args->hdl) |
| |
static CMPIData mbInvokeMethod(const CMPIBroker *mb, |
static CMPIData mbInvokeMethod( |
|
const CMPIBroker *mb, |
const CMPIContext *ctx, | const CMPIContext *ctx, |
const CMPIObjectPath *cop, | const CMPIObjectPath *cop, |
const char *method, | const char *method, |
|
|
DDD(cout<<"--- mbInvokeMethod()"<<endl); | DDD(cout<<"--- mbInvokeMethod()"<<endl); |
CMPIData data={0,CMPI_nullValue,{0}}; | CMPIData data={0,CMPI_nullValue,{0}}; |
mb=CM_BROKER; | mb=CM_BROKER; |
CIMObjectPath qop(String::EMPTY,CIMNamespaceName(), |
CIMObjectPath qop( |
|
String::EMPTY,CIMNamespaceName(), |
CM_ObjectPath(cop)->getClassName(), | CM_ObjectPath(cop)->getClassName(), |
CM_ObjectPath(cop)->getKeyBindings()); | CM_ObjectPath(cop)->getKeyBindings()); |
| |
AutoMutex mtx(((CMPI_Broker*)mb)->mtx); | AutoMutex mtx(((CMPI_Broker*)mb)->mtx); |
try { |
try |
|
{ |
CIMValue v=CM_CIMOM(mb)->invokeMethod( | CIMValue v=CM_CIMOM(mb)->invokeMethod( |
OperationContext(*CM_Context(ctx)), | OperationContext(*CM_Context(ctx)), |
CM_ObjectPath(cop)->getNameSpace(), | CM_ObjectPath(cop)->getNameSpace(), |
|
|
CMSetStatus(rc,CMPI_RC_OK); | CMSetStatus(rc,CMPI_RC_OK); |
} | } |
} | } |
catch (const CIMException &e) { |
catch (const CIMException &e) |
DDD(cout<<"### exception: mbInvokeMethod - code: "<<e.getCode()<<" msg: "<<e.getMessage()<<endl); |
{ |
|
DDD(cout<<"### exception: mbInvokeMethod - code: "<<e.getCode() |
|
<<" msg: "<<e.getMessage()<<endl); |
if (rc) | if (rc) |
{ | { |
CMSetStatusWithString(rc,(CMPIrc)e.getCode(), |
CMSetStatusWithString( |
|
rc, |
|
(CMPIrc)e.getCode(), |
(CMPIString*)string2CMPIString(e.getMessage())); | (CMPIString*)string2CMPIString(e.getMessage())); |
} | } |
} | } |
return data; // "data" will be valid data or nullValue (in error case) | return data; // "data" will be valid data or nullValue (in error case) |
} | } |
| |
static CMPIStatus mbSetProperty(const CMPIBroker *mb, const CMPIContext *ctx, |
static CMPIStatus mbSetProperty( |
const CMPIObjectPath *cop, const char *name, const CMPIValue *val, |
const CMPIBroker *mb, |
CMPIType type) { |
const CMPIContext *ctx, |
|
const CMPIObjectPath *cop, |
|
const char *name, |
|
const CMPIValue *val, |
|
CMPIType type) |
|
{ |
DDD(cout<<"--- mbSetProperty()"<<endl); | DDD(cout<<"--- mbSetProperty()"<<endl); |
mb=CM_BROKER; | mb=CM_BROKER; |
CMPIrc rc; | CMPIrc rc; |
CIMValue v=value2CIMValue(val,type,&rc); | CIMValue v=value2CIMValue(val,type,&rc); |
| |
AutoMutex mtx(((CMPI_Broker*)mb)->mtx); | AutoMutex mtx(((CMPI_Broker*)mb)->mtx); |
try { |
try |
|
{ |
CM_CIMOM(mb)->setProperty( | CM_CIMOM(mb)->setProperty( |
OperationContext(*CM_Context(ctx)), | OperationContext(*CM_Context(ctx)), |
CM_ObjectPath(cop)->getNameSpace(), | CM_ObjectPath(cop)->getNameSpace(), |
|
|
String(name), | String(name), |
v); | v); |
} | } |
catch (const CIMException &e) { |
catch (const CIMException &e) |
DDD(cout<<"### exception: mbSetProperty - code: "<<e.getCode()<<" msg: "<<e.getMessage()<<endl); |
{ |
CMReturnWithString((CMPIrc)e.getCode(), |
DDD(cout<<"### exception: mbSetProperty - code: "<<e.getCode() |
|
<<" msg: "<<e.getMessage()<<endl); |
|
CMReturnWithString( |
|
(CMPIrc)e.getCode(), |
(CMPIString*)string2CMPIString(e.getMessage())); | (CMPIString*)string2CMPIString(e.getMessage())); |
} | } |
CMReturn(CMPI_RC_OK); | CMReturn(CMPI_RC_OK); |
} | } |
| |
static CMPIData mbGetProperty(const CMPIBroker *mb, const CMPIContext *ctx, |
static CMPIData mbGetProperty( |
const CMPIObjectPath *cop, const char *name, CMPIStatus *rc) { |
const CMPIBroker *mb, |
|
const CMPIContext *ctx, |
|
const CMPIObjectPath *cop, |
|
const char *name, |
|
CMPIStatus *rc) |
|
{ |
DDD(cout<<"--- mbGetProperty()"<<endl); | DDD(cout<<"--- mbGetProperty()"<<endl); |
mb=CM_BROKER; | mb=CM_BROKER; |
CMPIData data={0,CMPI_nullValue,{0}}; | CMPIData data={0,CMPI_nullValue,{0}}; |
| |
AutoMutex mtx(((CMPI_Broker*)mb)->mtx); | AutoMutex mtx(((CMPI_Broker*)mb)->mtx); |
try { |
try |
|
{ |
CIMValue v=CM_CIMOM(mb)->getProperty( | CIMValue v=CM_CIMOM(mb)->getProperty( |
OperationContext(*CM_Context(ctx)), | OperationContext(*CM_Context(ctx)), |
CM_ObjectPath(cop)->getNameSpace(), | CM_ObjectPath(cop)->getNameSpace(), |
|
|
value2CMPIData(v,t,&data); | value2CMPIData(v,t,&data); |
CMSetStatus(rc,CMPI_RC_OK); | CMSetStatus(rc,CMPI_RC_OK); |
} | } |
catch (const CIMException &e) { |
catch (const CIMException &e) |
DDD(cout<<"### exception: mbGetProperty - code: "<<e.getCode()<<" msg: "<<e.getMessage()<<endl); |
{ |
|
DDD(cout<<"### exception: mbGetProperty - code: "<<e.getCode() |
|
<<" msg: "<<e.getMessage()<<endl); |
CMSetStatus(rc,(CMPIrc)e.getCode()); | CMSetStatus(rc,(CMPIrc)e.getCode()); |
} | } |
return data; // "data" will be valid data or nullValue (in error case) | return data; // "data" will be valid data or nullValue (in error case) |
} | } |
| |
static CMPIContext* mbPrepareAttachThread(const CMPIBroker* mb, const CMPIContext* eCtx) { |
static CMPIContext* mbPrepareAttachThread( |
|
const CMPIBroker* mb, |
|
const CMPIContext* eCtx) |
|
{ |
DDD(cout<<"--- mbPrepareAttachThread()"<<endl); | DDD(cout<<"--- mbPrepareAttachThread()"<<endl); |
mb=CM_BROKER; | mb=CM_BROKER; |
OperationContext *ctx=(OperationContext*)((CMPI_Context*)eCtx)->ctx; | OperationContext *ctx=(OperationContext*)((CMPI_Context*)eCtx)->ctx; |
OperationContext nctx=*ctx; | OperationContext nctx=*ctx; |
CMPIContext* neCtx=new CMPI_Context(*(new OperationContext(nctx))); | CMPIContext* neCtx=new CMPI_Context(*(new OperationContext(nctx))); |
CMPIString *name; | CMPIString *name; |
for (int i=0,s=CMPI_Args_Ftab->getArgCount(reinterpret_cast<const CMPIArgs*>(eCtx),NULL); i<s; i++) { |
for (int i=0,s=CMPI_Args_Ftab->getArgCount( |
CMPIData data=CMPI_Args_Ftab->getArgAt(reinterpret_cast<const CMPIArgs*>(eCtx),i,&name,NULL); |
reinterpret_cast<const CMPIArgs*>(eCtx),NULL); i<s; i++) |
CMPI_Args_Ftab->addArg(reinterpret_cast<CMPIArgs*>(neCtx),CMGetCharPtr(name),&data.value,data.type); |
{ |
|
CMPIData data = CMPI_Args_Ftab->getArgAt( |
|
reinterpret_cast<const CMPIArgs*>(eCtx),i,&name,NULL); |
|
CMPI_Args_Ftab->addArg( |
|
reinterpret_cast<CMPIArgs*>(neCtx), |
|
CMGetCharPtr(name), |
|
&data.value,data.type); |
} | } |
return neCtx; | return neCtx; |
} | } |
| |
static CMPIStatus mbAttachThread(const CMPIBroker* mb, const CMPIContext* eCtx) { |
static CMPIStatus mbAttachThread( |
|
const CMPIBroker* mb, |
|
const CMPIContext* eCtx) |
|
{ |
DDD(cout<<"--- mbAttachThread()"<<endl); | DDD(cout<<"--- mbAttachThread()"<<endl); |
((CMPI_Context*)eCtx)->thr=new CMPI_ThreadContext(mb,eCtx); | ((CMPI_Context*)eCtx)->thr=new CMPI_ThreadContext(mb,eCtx); |
CMReturn(CMPI_RC_OK); | CMReturn(CMPI_RC_OK); |
} | } |
| |
static CMPIStatus mbDetachThread(const CMPIBroker* mb, const CMPIContext* eCtx) { |
static CMPIStatus mbDetachThread( |
|
const CMPIBroker* mb, |
|
const CMPIContext* eCtx) |
|
{ |
DDD(cout<<"--- mbDetachThread()"<<endl); | DDD(cout<<"--- mbDetachThread()"<<endl); |
mb=CM_BROKER; | mb=CM_BROKER; |
CMPI_Context *neCtx = (CMPI_Context *)eCtx; | CMPI_Context *neCtx = (CMPI_Context *)eCtx; |
|
|
CMReturn(CMPI_RC_OK); | CMReturn(CMPI_RC_OK); |
} | } |
| |
static CMPIStatus mbDeliverIndication(const CMPIBroker* eMb, const CMPIContext* ctx, |
static CMPIStatus mbDeliverIndication( |
const char *ns, const CMPIInstance* ind) { |
const CMPIBroker* eMb, |
|
const CMPIContext* ctx, |
|
const char *ns, |
|
const CMPIInstance* ind) |
|
{ |
DDD(cout<<"--- mbDeliverIndication()"<<endl); | DDD(cout<<"--- mbDeliverIndication()"<<endl); |
eMb=CM_BROKER; | eMb=CM_BROKER; |
CMPI_Broker *mb=(CMPI_Broker*)eMb; | CMPI_Broker *mb=(CMPI_Broker*)eMb; |
|
|
provider_name = mb->name; | provider_name = mb->name; |
} | } |
ReadLock readLock(CMPIProviderManager::rwSemProvTab); | ReadLock readLock(CMPIProviderManager::rwSemProvTab); |
if (CMPIProviderManager::provTab.lookup(provider_name,prec)) { |
if (CMPIProviderManager::provTab.lookup(provider_name,prec)) |
if (prec->enabled) { |
{ |
try { |
if (prec->enabled) |
|
{ |
|
try |
|
{ |
context->get(SubscriptionInstanceNamesContainer::NAME); | context->get(SubscriptionInstanceNamesContainer::NAME); |
} | } |
catch (const Exception &) { |
catch (const Exception &) |
|
{ |
Array<CIMObjectPath> subscriptionInstanceNames; | Array<CIMObjectPath> subscriptionInstanceNames; |
context->insert(SubscriptionInstanceNamesContainer(subscriptionInstanceNames)); |
context->insert( |
|
SubscriptionInstanceNamesContainer( |
|
subscriptionInstanceNames)); |
} | } |
CIMIndication cimIndication(*CM_Instance(ind)); | CIMIndication cimIndication(*CM_Instance(ind)); |
AutoMutex mtx(((CMPI_Broker*)mb)->mtx); | AutoMutex mtx(((CMPI_Broker*)mb)->mtx); |
try { |
try |
|
{ |
prec->handler->deliver( | prec->handler->deliver( |
*context, | *context, |
// OperationContext(*CM_Context(ctx)), | // OperationContext(*CM_Context(ctx)), |
cimIndication); | cimIndication); |
CMReturn(CMPI_RC_OK); | CMReturn(CMPI_RC_OK); |
} | } |
catch (const CIMException &e) { |
catch (const CIMException &e) |
DDD(cout<<"### exception: mbSetProperty - code: "<<e.getCode()<<" msg: "<<e.getMessage()<<endl); |
{ |
|
DDD(cout<<"### exception: mbSetProperty - code: " |
|
<<e.getCode()<<" msg: "<<e.getMessage()<<endl); |
CMReturn((CMPIrc)e.getCode()); | CMReturn((CMPIrc)e.getCode()); |
} | } |
} | } |
} | } |
CMReturn(CMPI_RC_ERR_FAILED); | CMReturn(CMPI_RC_ERR_FAILED); |
} | } |
|
|
} | } |
| |
static CMPIBrokerFT broker_FT={ |
static CMPIBrokerFT broker_FT = |
|
{ |
MB_CAPABILITIES, // brokerClassification; | MB_CAPABILITIES, // brokerClassification; |
CMPICurrentVersion, | CMPICurrentVersion, |
"Pegasus", | "Pegasus", |