Capture time stamp for FRU collection

The commit adds code to capture start and end time with respect to VPD
collection of respective FRU.
This information will help in troubleshooting efficiency issue as well
as improving performance in case required.

Change-Id: I91977b981dd6fbed7db565721457f0bb5dc704dd
Signed-off-by: Sunny Srivastava <sunnsr25@in.ibm.com>
diff --git a/vpd-manager/include/utility/common_utility.hpp b/vpd-manager/include/utility/common_utility.hpp
index b5ff13c..b4d164f 100644
--- a/vpd-manager/include/utility/common_utility.hpp
+++ b/vpd-manager/include/utility/common_utility.hpp
@@ -4,6 +4,7 @@
 #include "logger.hpp"
 
 #include <algorithm>
+#include <chrono>
 #include <cstdio>
 #include <cstdlib>
 #include <vector>
@@ -235,5 +236,22 @@
     return l_binaryValue;
 }
 
+/**
+ * @brief API to get current time stamp since Epoch.
+ *
+ * @return time stamp in seconds.
+ */
+inline size_t getCurrentTimeSinceEpoch() noexcept
+{
+    // Use high_resolution_clock for better precision
+    const auto l_now = std::chrono::high_resolution_clock::now();
+    auto l_durationSinceEpoch = l_now.time_since_epoch();
+
+    auto l_timeStampSeconds =
+        std::chrono::duration_cast<std::chrono::seconds>(l_durationSinceEpoch)
+            .count();
+    return static_cast<size_t>(l_timeStampSeconds);
+}
+
 } // namespace commonUtility
 } // namespace vpd