185e54f1bSJason Ling #pragma once
285e54f1bSJason Ling #include "buildjson.hpp"
385e54f1bSJason Ling #include "version_handler.hpp"
485e54f1bSJason Ling 
585e54f1bSJason Ling #include <nlohmann/json.hpp>
685e54f1bSJason Ling 
785e54f1bSJason Ling #include <vector>
885e54f1bSJason Ling 
985e54f1bSJason Ling namespace ipmi_flash
1085e54f1bSJason Ling {
1185e54f1bSJason Ling /**
1285e54f1bSJason Ling  * provide the method to parse and validate blob entries from json and produce
1385e54f1bSJason Ling  * something that is usable by the version handler.
1485e54f1bSJason Ling  */
15*abf17354SWilliam A. Kennington III class VersionHandlersBuilder :
16*abf17354SWilliam A. Kennington III     public HandlersBuilderIfc<VersionBlobHandler::ActionPack>
1785e54f1bSJason Ling {
1885e54f1bSJason Ling   public:
19*abf17354SWilliam A. Kennington III     std::vector<HandlerConfig<VersionBlobHandler::ActionPack>>
2085e54f1bSJason Ling         buildHandlerFromJson(const nlohmann::json& data) override;
2185e54f1bSJason Ling };
2285e54f1bSJason Ling } // namespace ipmi_flash
23