1*3dcfd546SHarvey Wu #pragma once 2*3dcfd546SHarvey Wu 3*3dcfd546SHarvey Wu #include <nlohmann/json.hpp> 4*3dcfd546SHarvey Wu 5*3dcfd546SHarvey Wu #include <string> 6*3dcfd546SHarvey Wu 7*3dcfd546SHarvey Wu using json = nlohmann::json; 8*3dcfd546SHarvey Wu 9*3dcfd546SHarvey Wu /** 10*3dcfd546SHarvey Wu * Given json data, validate the minimum. 11*3dcfd546SHarvey Wu * The json data must be valid, and must contain two keys: 12*3dcfd546SHarvey Wu * sensors, and zones. 13*3dcfd546SHarvey Wu * 14*3dcfd546SHarvey Wu * @param[in] data - the json data. 15*3dcfd546SHarvey Wu * @return nothing - throws exceptions on invalid bits. 16*3dcfd546SHarvey Wu */ 17*3dcfd546SHarvey Wu void validateJson(const json& data); 18*3dcfd546SHarvey Wu 19*3dcfd546SHarvey Wu /** 20*3dcfd546SHarvey Wu * Given a json configuration file, parse it. 21*3dcfd546SHarvey Wu * 22*3dcfd546SHarvey Wu * There must be at least one sensor, and one zone. 23*3dcfd546SHarvey Wu * That one zone must contain at least one PID. 24*3dcfd546SHarvey Wu * 25*3dcfd546SHarvey Wu * @param[in] path - path to the configuration 26*3dcfd546SHarvey Wu * @return the json data. 27*3dcfd546SHarvey Wu */ 28*3dcfd546SHarvey Wu json parseValidateJson(const std::string& path); 29