BUG#:8731
authormarek <marek>
Wed, 17 Feb 2010 14:33:24 +0000 (14:33 +0000)
committermarek <marek>
Wed, 17 Feb 2010 14:33:24 +0000 (14:33 +0000)
TITLE: CMPIProvider executed queries are transformed back to C++ objects

DESCRIPTION:

src/Pegasus/Server/WQLOperationRequestDispatcher.cpp

index 95f6f84e773ddd0d2c16a6d75f588df3acd9850b..de5c856ed8b7e0384782ff103fa84b799dcb8951 100644 (file)
@@ -157,37 +157,21 @@ void WQLOperationRequestDispatcher::handleQueryResponseAggregation(
         {
             CIMExecQueryResponseMessage* fromResponse =
                 (CIMExecQueryResponseMessage*) response;
-            CIMClass cimClass;
-            Boolean clsRead=false;
-            Array<CIMObject>& cimObjects =
-                fromResponse->getResponseData().getObjects();
-            for (Uint32 j = 0, m = cimObjects.size(); j < m; j++)
+
+            CIMResponseData & from = fromResponse->getResponseData();
+            from.completeHostNameAndNamespace(
+                System::getHostName(),
+                poA->_nameSpace);
+
+            if (manyResponses)
             {
-                CIMObject co=cimObjects[j];
-                CIMObjectPath op=co.getPath();
-                const Array<CIMKeyBinding>& kbs=op.getKeyBindings();
-                if (kbs.size()==0)
-                {     // no path set why ?
-                    if (clsRead==false)
-                    {
-                        cimClass = _repository->getClass(
-                            poA->_nameSpace,op.getClassName(),
-                            false,true,false, CIMPropertyList());
-                        clsRead=true;
-                    }
-                    op = CIMInstance(cimObjects[j]).buildPath(
-                        cimClass);
-                }
-                op.setNameSpace(poA->_nameSpace);
-                op.setHost(System::getHostName());
-                co.setPath(op);
-                if (manyResponses)
-                    toResponse->getResponseData().appendObject(co);
-            }
+                toResponse->getResponseData().appendResponseData(from);
+            }            
         }
-
         if (manyResponses)
+        {
             poA->deleteResponse(i);
+        }
 
         if (i == 0)
             break;