adamdebreceni commented on a change in pull request #1032:
URL: https://github.com/apache/nifi-minifi-cpp/pull/1032#discussion_r600388400



##########
File path: libminifi/include/core/state/nodes/DeviceInformation.h
##########
@@ -353,119 +355,104 @@ class DeviceInfoNode : public DeviceInformation {
   std::vector<SerializedResponseNode> serialize() {
     std::vector<SerializedResponseNode> serialized;
 
+    serialized.push_back(serializeIdentifier());
+    serialized.push_back(serializeSystemInfo());
+    serialized.push_back(serializeNetworkInfo());
+
+    return serialized;
+  }
+
+ protected:
+  SerializedResponseNode serializeIdentifier() {
     SerializedResponseNode identifier;
     identifier.name = "identifier";
     identifier.value = device_id_;
+    return identifier;
+  }
 
-    SerializedResponseNode systemInfo;
-    systemInfo.name = "systemInfo";
-
-    SerializedResponseNode vcores;
-    vcores.name = "vCores";
-    size_t ncpus = std::thread::hardware_concurrency();
-
-    vcores.value = ncpus;
-
-    systemInfo.children.push_back(vcores);
-
-    SerializedResponseNode ostype;
-    ostype.name = "operatingSystem";
-    ostype.value = getOperatingSystem();
-
-    systemInfo.children.push_back(ostype);
-#if defined(_SC_PHYS_PAGES) && defined(_SC_PAGESIZE)
-    SerializedResponseNode mem;
-    mem.name = "physicalMem";
-
-    uint64_t mema = (size_t) sysconf(_SC_PHYS_PAGES) * (size_t) 
sysconf(_SC_PAGESIZE);
+  SerializedResponseNode serializeVCoreInfo() {
+    SerializedResponseNode v_cores;
+    v_cores.name = "vCores";
+    v_cores.value = std::thread::hardware_concurrency();
+    return v_cores;
+  }
 
-    mem.value = mema;
+  SerializedResponseNode serializeOperatingSystemType() {
+    SerializedResponseNode os_type;
+    os_type.name = "operatingSystem";
+    os_type.value = getOperatingSystem();
+    return os_type;
+  }
 
-    systemInfo.children.push_back(mem);
-#endif
-#ifndef WIN32
-    SerializedResponseNode arch;
-    arch.name = "machinearch";
+  SerializedResponseNode serializeTotalPhysicalMemoryInformation() {
+    SerializedResponseNode total_physical_memory;
+    total_physical_memory.name = "physicalMem";
+    total_physical_memory.value = 
(uint64_t)utils::OsUtils::getSystemTotalPhysicalMemory();
+    return total_physical_memory;
+  }
 
-    utsname buf;
+  SerializedResponseNode serializePhysicalMemoryUsageInformation() {
+    SerializedResponseNode used_physical_memory;
+    used_physical_memory.name = "memoryUtilization";
+    used_physical_memory.value = 
(uint64_t)utils::OsUtils::getSystemPhysicalMemoryUsage();

Review comment:
       ~`static_cast` is preferred (or better yet, `gsl::narrow` if need be)~
   
   there is no need for the cast here, if we really want to ensure that it is 
being called with `uint64_t` we could go for 
   
   ```suggestion
       used_physical_memory.value = 
uint64_t{utils::OsUtils::getSystemPhysicalMemoryUsage()};
   ```
   
   which will compile time prevent narrowing conversion from whatever the 
functions return type is to `uint64_t`




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Reply via email to