blob: eb4b8959db1ac8c14153b482ba4e17a81ff5b00c [file] [log] [blame]
Matthew Barth5c15b792017-03-01 11:17:00 -06001/**
2 * Copyright © 2017 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 */
Matthew Barthfd05d642019-11-14 15:01:57 -060016#include "config.h"
17#ifdef PRESENCE_JSON_FILE
18#include "json_config.hpp"
19#else
Brad Bishop76596b22017-06-13 14:39:13 -040020#include "generated.hpp"
Matthew Barthfd05d642019-11-14 15:01:57 -060021#endif
Brad Bishopec613db2017-06-08 12:12:53 -040022#include "sdbusplus.hpp"
William A. Kennington III1cfc2f12018-10-19 17:29:46 -070023#include <sdeventplus/event.hpp>
Matthew Barthf3e70472019-12-03 13:33:20 -060024#include <functional>
25#include <stdplus/signal.hpp>
26#include <sdeventplus/source/signal.hpp>
Matthew Barth293477d2017-02-17 15:39:36 -060027
28int main(void)
29{
Brad Bishop8e9a8e72017-06-08 23:21:03 -040030 using namespace phosphor::fan;
Brad Bishop8e9a8e72017-06-08 23:21:03 -040031
William A. Kennington III1cfc2f12018-10-19 17:29:46 -070032 auto event = sdeventplus::Event::get_default();
33 util::SDBusPlus::getBus().attach_event(
34 event.get(), SD_EVENT_PRIORITY_NORMAL);
Matthew Barthb8034452017-02-17 16:39:46 -060035
Matthew Barthfd05d642019-11-14 15:01:57 -060036#ifdef PRESENCE_JSON_FILE
37 // Use json file for presence config
38 presence::JsonConfig config(PRESENCE_JSON_FILE);
39 for (auto& p: presence::JsonConfig::get())
40 {
41 p->monitor();
42 }
Matthew Barthf3e70472019-12-03 13:33:20 -060043
44 stdplus::signal::block(SIGHUP);
45 sdeventplus::source::Signal signal(event, SIGHUP,
46 std::bind(&presence::JsonConfig::sighupHandler,
47 &config, std::placeholders::_1, std::placeholders::_2));
Matthew Barthfd05d642019-11-14 15:01:57 -060048#else
Brad Bishop372b22c2017-07-12 15:57:14 -040049 for (auto& p: presence::ConfigPolicy::get())
Matthew Barthb8034452017-02-17 16:39:46 -060050 {
Brad Bishop372b22c2017-07-12 15:57:14 -040051 p->monitor();
Matthew Barthb8034452017-02-17 16:39:46 -060052 }
Matthew Barthfd05d642019-11-14 15:01:57 -060053#endif
Matthew Barthb8034452017-02-17 16:39:46 -060054
William A. Kennington III1cfc2f12018-10-19 17:29:46 -070055 return event.loop();
Matthew Barth293477d2017-02-17 15:39:36 -060056}