blob: 8f70fe407edf3b196690ea6d1e5a919df302921b [file] [log] [blame]
Gunnar Millsb0ce9962018-09-07 13:39:10 -05001#include "config.h"
2
3#include "sync_manager.hpp"
4#include "sync_watch.hpp"
5
6#include <systemd/sd-event.h>
7
Patrick Williamsc9bb6422021-08-27 06:18:35 -05008#include <phosphor-logging/lg2.hpp>
Adriana Kobylak7e8d76b2018-04-20 10:03:01 -05009#include <sdbusplus/bus.hpp>
10#include <sdbusplus/server/manager.hpp>
Adriana Kobylak7e8d76b2018-04-20 10:03:01 -050011
Adriana Kobylak58aa7502020-06-08 11:12:11 -050012#include <exception>
13
Adriana Kobylak292159f2020-05-05 09:25:55 -050014int main()
Adriana Kobylak7e8d76b2018-04-20 10:03:01 -050015{
16 auto bus = sdbusplus::bus::new_default();
17
Adriana Kobylakb072d1b2018-04-24 11:37:21 -050018 sd_event* loop = nullptr;
19 sd_event_default(&loop);
20
Patrick Williamsbf2bb2b2022-07-22 19:26:52 -050021 sdbusplus::server::manager_t objManager(bus, SOFTWARE_OBJPATH);
Adriana Kobylakb072d1b2018-04-24 11:37:21 -050022
23 try
24 {
Adriana Kobylakb072d1b2018-04-24 11:37:21 -050025 using namespace phosphor::software::manager;
Pavithra Barithayac5f6e7e2024-06-24 09:50:21 -050026 auto syncCallback = std::bind(
27 &Sync::processEntry, std::placeholders::_1, std::placeholders::_2);
28 phosphor::software::manager::SyncWatch watch(*loop, syncCallback);
Adriana Kobylakb072d1b2018-04-24 11:37:21 -050029 bus.attach_event(loop, SD_EVENT_PRIORITY_NORMAL);
30 sd_event_loop(loop);
31 }
Patrick Williams58e18972021-10-06 12:25:58 -050032 catch (const std::exception& e)
Adriana Kobylakb072d1b2018-04-24 11:37:21 -050033 {
Patrick Williamsc9bb6422021-08-27 06:18:35 -050034 lg2::error("Error in event loop: {ERROR}", "ERROR", e);
Adriana Kobylakb072d1b2018-04-24 11:37:21 -050035 sd_event_unref(loop);
36 return -1;
37 }
38
39 sd_event_unref(loop);
Adriana Kobylak7e8d76b2018-04-20 10:03:01 -050040
41 return 0;
42}