blob: f6ba56e26a16cbc58cd98fb546c83eb01ab15fc1 [file] [log] [blame]
Matthew Barth167d2dd2020-08-04 12:19:16 -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 <nlohmann/json.hpp>
19#include <sdbusplus/bus.hpp>
20
21namespace phosphor::fan::control::json
22{
23
24using json = nlohmann::json;
25
26class Profiles
27{
28 public:
29 Profiles() = delete;
30 Profiles(const Profiles&) = delete;
31 Profiles(Profiles&&) = delete;
32 Profiles& operator=(const Profiles&) = delete;
33 Profiles& operator=(Profiles&&) = delete;
34 ~Profiles() = default;
35
36 /**
37 * Constructor
38 * Parses and populates the zone profiles from a json file
39 *
40 * @param[in] bus - sdbusplus bus object
41 */
42 explicit Profiles(sdbusplus::bus::bus& bus);
43
44 private:
45 /* JSON file name for profiles */
46 static constexpr auto confFileName = "profiles.json";
47
48 /* The parsed JSON object */
49 json _jsonObj;
50};
51
52} // namespace phosphor::fan::control::json