Memory VPD parser

This commit supports Implementation part of Memory vpd parser.
JSON support for DIMMs need to be done, so not tested.

Change-Id: I6bff9c75a335b0267d8f2b9fa4f1905953b24da5
Signed-off-by: Alpana Kumari <alpankum@in.ibm.com>
diff --git a/memory_vpd_parser.hpp b/memory_vpd_parser.hpp
new file mode 100644
index 0000000..18f4519
--- /dev/null
+++ b/memory_vpd_parser.hpp
@@ -0,0 +1,55 @@
+#pragma once
+
+#include "impl.hpp"
+#include "types.hpp"
+
+namespace openpower
+{
+namespace vpd
+{
+namespace memory
+{
+namespace parser
+{
+
+class memoryVpdParser
+{
+  public:
+    /**
+     * @brief Move Constructor
+     *
+     * Move kwVpdVector to parser object's kwVpdVector
+     */
+    memoryVpdParser(Binary&& memVpdVector) : memVpd(std::move(memVpdVector))
+    {
+    }
+
+    /**
+     * @brief Destructor
+     *
+     * Delete the parser object
+     */
+    ~memoryVpdParser(){};
+
+    /**
+     * @brief Parse the memory VPD binary data.
+     *
+     * Collects and emplace the keyword-value pairs in map.
+     *
+     * @return map of keyword:value
+     */
+    inventory::KeywordVpdMap parseMemVpd();
+
+  private:
+    /**
+     */
+    inventory::KeywordVpdMap readKeywords(Binary::const_iterator iterator);
+
+    /**
+     */
+    Binary memVpd;
+};
+} // namespace parser
+} // namespace memory
+} // namespace vpd
+} // namespace openpower
\ No newline at end of file