/* | |
// Copyright (c) 2018 Intel Corporation | |
// | |
// Licensed under the Apache License, Version 2.0 (the "License"); | |
// you may not use this file except in compliance with the License. | |
// You may obtain a copy of the License at | |
// | |
// http://www.apache.org/licenses/LICENSE-2.0 | |
// | |
// Unless required by applicable law or agreed to in writing, software | |
// distributed under the License is distributed on an "AS IS" BASIS, | |
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
// See the License for the specific language governing permissions and | |
// limitations under the License. | |
*/ | |
#include "srvcfg_manager.hpp" | |
std::shared_ptr<boost::asio::deadline_timer> timer = nullptr; | |
std::map<std::string, std::shared_ptr<phosphor::service::ServiceConfig>> | |
srvMgrObjects; | |
static std::map<std::string, std::string> serviceList = { | |
{"netipmid", "phosphor-ipmi-net"}, {"web", "bmcweb"}, {"ssh", "dropbear"}}; | |
int main() | |
{ | |
// setup connection to dbus | |
boost::asio::io_service io; | |
auto conn = std::make_shared<sdbusplus::asio::connection>(io); | |
timer = std::make_shared<boost::asio::deadline_timer>(io); | |
conn->request_name(phosphor::service::serviceConfigSrvName); | |
auto server = sdbusplus::asio::object_server(conn, true); | |
auto mgrInterface = | |
server.add_interface("/xyz/openbmc_project/control/service", ""); | |
mgrInterface->initialize(); | |
server.add_manager("/xyz/openbmc_project/control/service"); | |
for (const auto &service : serviceList) | |
{ | |
std::string objPath("/xyz/openbmc_project/control/service/" + | |
service.first); | |
auto srvCfgObj = std::make_unique<phosphor::service::ServiceConfig>( | |
server, conn, objPath, service.second); | |
srvMgrObjects.emplace( | |
std::make_pair(std::move(service.first), std::move(srvCfgObj))); | |
} | |
io.run(); | |
return 0; | |
} |