xref: /openbmc/phosphor-pid-control/pid/buildjson.hpp (revision a83a3ecc8c5be5f1b38253568ec8952f6fc9682f)
1d1491724SPatrick Venture #pragma once
2d1491724SPatrick Venture 
3d1491724SPatrick Venture #include "conf.hpp"
4d1491724SPatrick Venture 
5d1491724SPatrick Venture #include <nlohmann/json.hpp>
6*a83a3eccSPatrick Venture 
7*a83a3eccSPatrick Venture #include <map>
8d1491724SPatrick Venture #include <tuple>
9d1491724SPatrick Venture 
10d1491724SPatrick Venture using json = nlohmann::json;
11d1491724SPatrick Venture 
12d1491724SPatrick Venture /**
13d1491724SPatrick Venture  * Given the json "zones" data, create the map of PIDs and the map of zones.
14d1491724SPatrick Venture  *
15d1491724SPatrick Venture  * @param[in] data - the json data
16d1491724SPatrick Venture  * @return the pidConfig, and the zoneConfig
17d1491724SPatrick Venture  */
18f81f2886SJames Feist std::pair<std::map<int64_t, conf::PIDConf>,
19f81f2886SJames Feist           std::map<int64_t, struct conf::ZoneConfig>>
20d1491724SPatrick Venture     buildPIDsFromJson(const json& data);
21