1*44c9025dSAlexander Hansen /* 2*44c9025dSAlexander Hansen // Copyright (c) 2018 Intel Corporation 3*44c9025dSAlexander Hansen // 4*44c9025dSAlexander Hansen // Licensed under the Apache License, Version 2.0 (the "License"); 5*44c9025dSAlexander Hansen // you may not use this file except in compliance with the License. 6*44c9025dSAlexander Hansen // You may obtain a copy of the License at 7*44c9025dSAlexander Hansen // 8*44c9025dSAlexander Hansen // http://www.apache.org/licenses/LICENSE-2.0 9*44c9025dSAlexander Hansen // 10*44c9025dSAlexander Hansen // Unless required by applicable law or agreed to in writing, software 11*44c9025dSAlexander Hansen // distributed under the License is distributed on an "AS IS" BASIS, 12*44c9025dSAlexander Hansen // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*44c9025dSAlexander Hansen // See the License for the specific language governing permissions and 14*44c9025dSAlexander Hansen // limitations under the License. 15*44c9025dSAlexander Hansen */ 16*44c9025dSAlexander Hansen 17*44c9025dSAlexander Hansen #include "entity_manager.hpp" 18*44c9025dSAlexander Hansen 19*44c9025dSAlexander Hansen #include <boost/asio/io_context.hpp> 20*44c9025dSAlexander Hansen #include <boost/asio/post.hpp> 21*44c9025dSAlexander Hansen #include <nlohmann/json.hpp> 22*44c9025dSAlexander Hansen #include <sdbusplus/asio/connection.hpp> 23*44c9025dSAlexander Hansen 24*44c9025dSAlexander Hansen int main() 25*44c9025dSAlexander Hansen { 26*44c9025dSAlexander Hansen boost::asio::io_context io; 27*44c9025dSAlexander Hansen auto systemBus = std::make_shared<sdbusplus::asio::connection>(io); 28*44c9025dSAlexander Hansen systemBus->request_name("xyz.openbmc_project.EntityManager"); 29*44c9025dSAlexander Hansen EntityManager em(systemBus, io); 30*44c9025dSAlexander Hansen 31*44c9025dSAlexander Hansen nlohmann::json systemConfiguration = nlohmann::json::object(); 32*44c9025dSAlexander Hansen 33*44c9025dSAlexander Hansen boost::asio::post(io, [&]() { em.propertiesChangedCallback(); }); 34*44c9025dSAlexander Hansen 35*44c9025dSAlexander Hansen em.handleCurrentConfigurationJson(); 36*44c9025dSAlexander Hansen 37*44c9025dSAlexander Hansen // some boards only show up after power is on, we want to not say they are 38*44c9025dSAlexander Hansen // removed until the same state happens 39*44c9025dSAlexander Hansen em.powerStatus.setupPowerMatch(em.systemBus); 40*44c9025dSAlexander Hansen 41*44c9025dSAlexander Hansen io.run(); 42*44c9025dSAlexander Hansen 43*44c9025dSAlexander Hansen return 0; 44*44c9025dSAlexander Hansen } 45