xref: /openbmc/phosphor-state-manager/bmc_state_manager_main.cpp (revision 2eb6029cd9696b1db92c59e85a6752ac4ba4a5a0)
1bdd9cb71SJosh D. King #include "config.h"
2e426b589SAndrew Geissler 
3bdd9cb71SJosh D. King #include "bmc_state_manager.hpp"
4bdd9cb71SJosh D. King 
5e426b589SAndrew Geissler #include <sdbusplus/bus.hpp>
6e426b589SAndrew Geissler 
7f566c964SAmithash Prasasd using BMCState = sdbusplus::server::xyz::openbmc_project::state::BMC;
8f566c964SAmithash Prasasd 
main()9769a62f1SAndrew Geissler int main()
10bdd9cb71SJosh D. King {
11bdd9cb71SJosh D. King     auto bus = sdbusplus::bus::new_default();
12bdd9cb71SJosh D. King 
13bdd9cb71SJosh D. King     // For now, we only have one instance of the BMC
14bdd9cb71SJosh D. King     // 0 is for the current instance
15f566c964SAmithash Prasasd     const auto* BMCName = BMCState::namespace_path::bmc;
16f566c964SAmithash Prasasd     const auto* objPath = BMCState::namespace_path::value;
17f566c964SAmithash Prasasd     std::string objPathInst =
18f566c964SAmithash Prasasd         sdbusplus::message::object_path(objPath) / BMCName;
19bdd9cb71SJosh D. King 
20bdd9cb71SJosh D. King     // Add sdbusplus ObjectManager.
21*2eb6029cSAmithash Prasasd     sdbusplus::server::manager_t objManager(bus, objPath);
22bdd9cb71SJosh D. King 
2358a18013SAndrew Geissler     phosphor::state::manager::BMC manager(bus, objPathInst.c_str());
24bdd9cb71SJosh D. King 
25f566c964SAmithash Prasasd     bus.request_name(BMCState::interface);
26bdd9cb71SJosh D. King 
27bdd9cb71SJosh D. King     while (true)
28bdd9cb71SJosh D. King     {
29bdd9cb71SJosh D. King         bus.process_discard();
30bdd9cb71SJosh D. King         bus.wait();
31bdd9cb71SJosh D. King     }
32bdd9cb71SJosh D. King 
33bdd9cb71SJosh D. King     exit(EXIT_SUCCESS);
34bdd9cb71SJosh D. King }
35