VPD Tool : Force Collect On Hardware

This commit adds an additional option called --forceReset
in the vpd-tool.

This option is used to restart the Inventory Manager service
and retrigger the udev events which launches the VPD services.

How to use the option?
./vpd-tool --forceReset/-f/-F

This option does not take any arguments.

Tested on simics.

Signed-off-by: PriyangaRamasamy <priyanga24@in.ibm.com>
Change-Id: Icd1ad30389432f731f21cc84999f7a54fcbbec65
diff --git a/vpd_tool_impl.hpp b/vpd_tool_impl.hpp
index 1ac96bd..6aec28c 100644
--- a/vpd_tool_impl.hpp
+++ b/vpd_tool_impl.hpp
@@ -109,7 +109,7 @@
      * Get the power supply fru paths from Object mapper service.
      *
      * @param[out] powSuppFrus - Reference to a vector which has the power
-     * supply fru paths.
+     * supply fruPaths.
      */
     void getPowerSupplyFruPath(std::vector<std::string>& powSuppFrus);
 
@@ -155,9 +155,20 @@
     int updateKeyword();
 
     /**
+     * @brief Force Reset
+     * Clearing the inventory cache data and restarting the
+     * phosphor inventory manager and also retriggering all the
+     * udev events.
+     *
+     * @param[in] jsObject - Inventory JSON specified in configure file.
+     */
+    void forceReset(const nlohmann::basic_json<>& jsObject);
+
+    /**
      * @brief Constructor
      * Constructor is called during the
-     * object instantiation for dumpInventory option.
+     * object instantiation for dumpInventory option and
+     * forceReset option.
      */
     VpdTool()
     {