(file) Return to CMPI_Broker.cpp CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Pegasus / ProviderManager2 / CMPI

Diff for /pegasus/src/Pegasus/ProviderManager2/CMPI/CMPI_Broker.cpp between version 1.38 and 1.39

version 1.38, 2007/07/16 14:41:05 version 1.39, 2007/07/25 07:16:00
Line 30 
Line 30 
 //============================================================================== //==============================================================================
 // //
 //%///////////////////////////////////////////////////////////////////////////// //%/////////////////////////////////////////////////////////////////////////////
 //NOCHKSRC  
 #include "CMPI_Version.h" #include "CMPI_Version.h"
  
 #include "CMPI_Broker.h" #include "CMPI_Broker.h"
Line 68 
Line 68 
  
 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);
Line 80 
Line 83 
   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(),
Line 106 
Line 118 
                   (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(),
Line 139 
Line 164 
          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(
Line 193 
Line 247 
          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(),
Line 240 
Line 308 
          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(),
Line 271 
Line 355 
          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++)
          {          {
Line 286 
Line 372 
              (*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());
Line 317 
Line 416 
           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,
Line 355 
Line 474 
          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
Line 369 
Line 489 
              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,
Line 411 
Line 545 
          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,
Line 448 
Line 601 
          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
Line 461 
Line 615 
              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,
Line 498 
Line 668 
          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.
Line 514 
Line 692 
  
 #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,
Line 525 
Line 704 
       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(),
Line 546 
Line 727 
              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(),
Line 574 
Line 765 
          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(),
Line 600 
Line 800 
          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;
Line 637 
Line 854 
       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;
Line 659 
Line 880 
           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",


Legend:
Removed from v.1.38  
changed lines
  Added in v.1.39

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2