blob: f8d1f4ab6df4976a917e5c944b58c06ad034cbd7 [file] [log] [blame]
Matthew Barthccaf2db2020-06-04 13:09:35 -05001/**
2 * Copyright © 2020 IBM Corporation
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16#pragma once
17
18#include "json_config.hpp"
Matthew Barth9ea8bee2020-06-04 14:27:19 -050019#include "trust_group.hpp"
20#include "types.hpp"
Matthew Barthccaf2db2020-06-04 13:09:35 -050021
22#include <nlohmann/json.hpp>
23#include <sdbusplus/bus.hpp>
24
25namespace phosphor::fan::monitor
26{
27
28using json = nlohmann::json;
29
30constexpr auto confAppName = "monitor";
31constexpr auto confFileName = "config.json";
32
Matthew Barth9ea8bee2020-06-04 14:27:19 -050033// Trust group class handler function
34using trustHandler = std::function<CreateGroupFunction(
35 const std::vector<trust::GroupDefinition>&)>;
36
Matthew Barthccaf2db2020-06-04 13:09:35 -050037/**
38 * @brief Get the JSON object
39 *
40 * @param[in] bus - The dbus bus object
41 *
42 * @return JSON object
43 * A JSON object created after loading the JSON configuration file
44 */
45inline const json getJsonObj(sdbusplus::bus::bus& bus)
46{
47 return fan::JsonConfig::load(
48 fan::JsonConfig::getConfFile(bus, confAppName, confFileName));
49}
50
Matthew Barth9ea8bee2020-06-04 14:27:19 -050051/**
52 * @brief Get any configured trust groups
53 *
54 * @param[in] obj - JSON object to parse from
55 *
56 * @return List of functions applied on trust groups
57 */
58const std::vector<CreateGroupFunction> getTrustGrps(const json& obj);
59
Matthew Barthccaf2db2020-06-04 13:09:35 -050060} // namespace phosphor::fan::monitor