Browse Source

HPCC-19607 Revise based on review

Signed-off-by: wangkx <kevin.wang@lexisnexis.com>
wangkx 6 years ago
parent
commit
69999f7941
2 changed files with 18 additions and 18 deletions
  1. 2 2
      esp/scm/ws_dfu.ecm
  2. 16 16
      esp/services/ws_dfu/ws_dfuService.cpp

+ 2 - 2
esp/scm/ws_dfu.ecm

@@ -174,8 +174,8 @@ ESPStruct [nil_remove] DFUFileDetail
     [min_ver("1.37"), json_inline(1)] string jsonInfo;
     [min_ver("1.37")] binary binInfo;
     [min_ver("1.38")] string PackageID;
-    [min_ver("1.39")] ESPstruct DFUFilePartition Partitions;
-    [min_ver("1.39")] ESPstruct DFUFileBloom Blooms;
+    [min_ver("1.39")] ESPstruct DFUFilePartition Partition;
+    [min_ver("1.39")] ESPstruct DFUFileBloom Bloom;
 };
 
 ESPStruct DFUSpaceItem

+ 16 - 16
esp/services/ws_dfu/ws_dfuService.cpp

@@ -1979,13 +1979,13 @@ void CWsDfuEx::getFilePartsOnClusters(IEspContext &context, const char* clusterR
 
 void CWsDfuEx::parseFieldMask(unsigned __int64 fieldMask, unsigned &fieldCount, IntArray &fieldIndexArray)
 {
-    if (fieldMask == 0)
-        return;
-
-    fieldCount++;
-    if (fieldMask % 2)
-        fieldIndexArray.append(fieldCount);
-    parseFieldMask(fieldMask/2, fieldCount, fieldIndexArray);
+    while (fieldMask > 0)
+    {
+        if (fieldMask & 1)
+            fieldIndexArray.append(fieldCount); //index from 0
+        fieldMask >>= 1;
+        fieldCount++;
+    }
 }
 
 void CWsDfuEx::queryFieldNames(IEspContext &context, const char *fileName, const char *cluster,
@@ -2160,23 +2160,23 @@ void CWsDfuEx::doGetFileDetails(IEspContext &context, IUserDescriptor *udesc, co
             unsigned __int64 partitionFieldMask = df->queryAttributes().getPropInt64("@partitionFieldMask");
             queryFieldNames(context, name, cluster, partitionFieldMask, partitionFieldNames);
 
-            IEspDFUFilePartition &partition = FileDetails.updatePartitions();
+            IEspDFUFilePartition &partition = FileDetails.updatePartition();
             partition.setFieldMask(partitionFieldMask);
             partition.setFieldNames(partitionFieldNames);
         }
 
-        IPropertyTree *bloom = df->queryAttributes().queryPropTree("Bloom");
-        if (bloom)
+        IPropertyTree *bloomTree = df->queryAttributes().queryPropTree("Bloom");
+        if (bloomTree)
         {
             StringArray bloomFieldNames;
-            unsigned __int64 bloomFieldMask = bloom->getPropInt64("@bloomFieldMask");
+            unsigned __int64 bloomFieldMask = bloomTree->getPropInt64("@bloomFieldMask");
             queryFieldNames(context, name, cluster, bloomFieldMask, bloomFieldNames);
 
-            IEspDFUFileBloom &blooms = FileDetails.updateBlooms();
-            blooms.setFieldMask(bloomFieldMask);
-            blooms.setFieldNames(bloomFieldNames);
-            blooms.setLimit(bloom->getPropInt64("@bloomLimit"));
-            blooms.setProbability(bloom->queryProp("@bloomProbability"));
+            IEspDFUFileBloom &bloom = FileDetails.updateBloom();
+            bloom.setFieldMask(bloomFieldMask);
+            bloom.setFieldNames(bloomFieldNames);
+            bloom.setLimit(bloomTree->getPropInt64("@bloomLimit"));
+            bloom.setProbability(bloomTree->queryProp("@bloomProbability"));
         }
     }