1*e426b589SAndrew Geissler #include "config.h"
2*e426b589SAndrew Geissler 
3*e426b589SAndrew Geissler #include "scheduled_host_transition.hpp"
4*e426b589SAndrew Geissler 
5*e426b589SAndrew Geissler #include <sdbusplus/bus.hpp>
6*e426b589SAndrew Geissler 
771230efdSCarol Wang #include <cstdlib>
871230efdSCarol Wang #include <exception>
91dbbef42SCarol Wang #include <filesystem>
1071230efdSCarol Wang 
1171230efdSCarol Wang int main()
1271230efdSCarol Wang {
131dbbef42SCarol Wang     namespace fs = std::filesystem;
141dbbef42SCarol Wang 
156a5db3d3SCarol Wang     // Get a default event loop
166a5db3d3SCarol Wang     auto event = sdeventplus::Event::get_default();
176a5db3d3SCarol Wang 
186a5db3d3SCarol Wang     // Get a handle to system dbus
1971230efdSCarol Wang     auto bus = sdbusplus::bus::new_default();
2071230efdSCarol Wang 
2171230efdSCarol Wang     // For now, we only have one instance of the host
2271230efdSCarol Wang     auto objPathInst = std::string{HOST_OBJPATH} + '0';
2371230efdSCarol Wang 
241dbbef42SCarol Wang     // Check SCHEDULED_HOST_TRANSITION_PERSIST_PATH
251dbbef42SCarol Wang     auto dir = fs::path(SCHEDULED_HOST_TRANSITION_PERSIST_PATH).parent_path();
261dbbef42SCarol Wang     if (!fs::exists(dir))
271dbbef42SCarol Wang     {
281dbbef42SCarol Wang         fs::create_directories(dir);
291dbbef42SCarol Wang     }
301dbbef42SCarol Wang 
3171230efdSCarol Wang     // Add sdbusplus ObjectManager.
3271230efdSCarol Wang     sdbusplus::server::manager::manager objManager(bus, objPathInst.c_str());
3371230efdSCarol Wang 
3471230efdSCarol Wang     phosphor::state::manager::ScheduledHostTransition manager(
356a5db3d3SCarol Wang         bus, objPathInst.c_str(), event);
3671230efdSCarol Wang 
3771230efdSCarol Wang     bus.request_name(SCHEDULED_HOST_TRANSITION_BUSNAME);
3871230efdSCarol Wang 
396a5db3d3SCarol Wang     // Attach the bus to sd_event to service user requests
406a5db3d3SCarol Wang     bus.attach_event(event.get(), SD_EVENT_PRIORITY_NORMAL);
416a5db3d3SCarol Wang     event.loop();
426a5db3d3SCarol Wang 
4371230efdSCarol Wang     return 0;
4471230efdSCarol Wang }
45