| #ifndef PRODUCTION_SUSHID_SAFEPOWER_AGENT_BMC_STATE_MONITOR_BMC_H_ |
| #define PRODUCTION_SUSHID_SAFEPOWER_AGENT_BMC_STATE_MONITOR_BMC_H_ |
| |
| #include <memory> |
| #include <string> |
| |
| #include "safepower_agent.pb.h" |
| #include "safepower_agent_config.pb.h" |
| #include "state_updater.h" |
| #include "absl/status/status.h" |
| #include "absl/strings/string_view.h" |
| |
| namespace safepower_agent { |
| |
| class StateMonitorBMC { |
| public: |
| explicit StateMonitorBMC( |
| std::shared_ptr<StateUpdater<safepower_agent_proto::SystemState>> |
| reactor); |
| ~StateMonitorBMC() = default; |
| |
| absl::Status BuildFromConfig( |
| const safepower_agent_config::GpowerdConfig& config); |
| |
| private: |
| absl::Status CreateRedfishUpdatePowerState(std::string state_name, |
| std::string uri, |
| std::string json_key, |
| int collection_interval, |
| std::string node_entity_tag, |
| std::string component_name); |
| |
| absl::Status CreateDbusStateMonitor(std::string state_name, |
| std::string dbus_path, |
| std::string dbus_method, std::string dbus_interface, |
| std::string dbus_value, int collection_interval); |
| |
| safepower_agent_proto::PowerStateSpecifier |
| ConvertStatePowerStringToEnum(absl::string_view state_str); |
| |
| std::shared_ptr<StateUpdater<safepower_agent_proto::SystemState>> reactor_; |
| }; |
| |
| } // namespace safepower_agent |
| |
| #endif // PRODUCTION_SUSHID_SAFEPOWER_AGENT_BMC_STATE_MONITOR_BMC_H_ |