136529022SAndrew Geissler #include <cstdlib>
236529022SAndrew Geissler #include <iostream>
336529022SAndrew Geissler #include <exception>
436529022SAndrew Geissler #include <sdbusplus/bus.hpp>
5*3f475242SDhruvaraj Subhashchandran #include <experimental/filesystem>
636529022SAndrew Geissler #include "config.h"
736529022SAndrew Geissler #include "host_state_manager.hpp"
836529022SAndrew Geissler 
936529022SAndrew Geissler int main(int argc, char *argv[])
1036529022SAndrew Geissler {
11*3f475242SDhruvaraj Subhashchandran     namespace fs = std::experimental::filesystem;
12*3f475242SDhruvaraj Subhashchandran 
1336529022SAndrew Geissler     auto bus = sdbusplus::bus::new_default();
1436529022SAndrew Geissler 
151cb8b707SAndrew Geissler     // For now, we only have one instance of the host
16a90a31a9SAndrew Geissler     auto objPathInst = std::string{HOST_OBJPATH} + '0';
171cb8b707SAndrew Geissler 
1836529022SAndrew Geissler     // Add sdbusplus ObjectManager.
191cb8b707SAndrew Geissler     sdbusplus::server::manager::manager objManager(bus, objPathInst.c_str());
2036529022SAndrew Geissler 
21a90a31a9SAndrew Geissler     phosphor::state::manager::Host manager(bus,
22a90a31a9SAndrew Geissler                                            HOST_BUSNAME,
23a90a31a9SAndrew Geissler                                            objPathInst.c_str());
24a90a31a9SAndrew Geissler 
25*3f475242SDhruvaraj Subhashchandran     auto dir = fs::path(HOST_STATE_PERSIST_PATH).parent_path();
26*3f475242SDhruvaraj Subhashchandran     fs::create_directories(dir);
27*3f475242SDhruvaraj Subhashchandran 
28a90a31a9SAndrew Geissler     bus.request_name(HOST_BUSNAME);
2936529022SAndrew Geissler 
3036529022SAndrew Geissler     while(true)
3136529022SAndrew Geissler     {
3236529022SAndrew Geissler         bus.process_discard();
3336529022SAndrew Geissler         bus.wait();
3436529022SAndrew Geissler     }
3536529022SAndrew Geissler     return 0;
3636529022SAndrew Geissler }
37