| /* | |
| // 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. | |
| */ | |
| #pragma once | |
| #include <sdbusplus/timer.hpp> | |
| #include "utils.hpp" | |
| namespace phosphor | |
| { | |
| namespace service | |
| { | |
| static constexpr const char *serviceConfigSrvName = | |
| "xyz.openbmc_project.Control.Service.Manager"; | |
| static constexpr const char *serviceConfigIntfName = | |
| "xyz.openbmc_project.Control.Service.Attributes"; | |
| enum class UpdatedProp | |
| { | |
| port = 1, | |
| channel, | |
| state | |
| }; | |
| class ServiceConfig | |
| { | |
| public: | |
| ServiceConfig(sdbusplus::asio::object_server &srv_, | |
| std::shared_ptr<sdbusplus::asio::connection> &conn_, | |
| std::string objPath_, std::string unitName); | |
| ~ServiceConfig() = default; | |
| void applySystemDServiceConfig(); | |
| void startServiceRestartTimer(); | |
| std::shared_ptr<sdbusplus::asio::connection> conn; | |
| uint8_t updatedFlag; | |
| private: | |
| sdbusplus::asio::object_server &server; | |
| std::string objPath; | |
| uint16_t portNum; | |
| std::string protocol; | |
| std::string stateValue; | |
| std::vector<std::string> channelList; | |
| void registerProperties(); | |
| std::string sysDUnitName; | |
| std::string unitSocketFilePath; | |
| std::string sysDSockObjPath; | |
| void syncWithSystemD1Properties(); | |
| }; | |
| } // namespace service | |
| } // namespace phosphor |