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