| #include "types.hpp" |
| #include "host-ipmid/ipmid-api.h" |
| |
| namespace ipmi |
| { |
| namespace sensor |
| { |
| |
| using Assertion = uint16_t; |
| using Deassertion = uint16_t; |
| using AssertionSet = std::pair<Assertion, Deassertion>; |
| |
| using Service = std::string; |
| using Path = std::string; |
| using Interface = std::string; |
| |
| using ServicePath = std::pair<Path, Service>; |
| |
| using Interfaces = std::vector<Interface>; |
| |
| using MapperResponseType = std::map<Path, std::map<Service, Interfaces>>; |
| |
| /** @brief get the D-Bus service and service path |
| * @param[in] bus - The Dbus bus object |
| * @param[in] interface - interface to the service |
| * @param[in] path - interested path in the list of objects |
| * @return pair of service path and service |
| */ |
| ServicePath getServiceAndPath(sdbusplus::bus::bus& bus, |
| const std::string& interface, |
| const std::string& path = std::string()); |
| |
| /** @brief Make assertion set from input data |
| * @param[in] cmdData - Input sensor data |
| * @return pair of assertion and deassertion set |
| */ |
| AssertionSet getAssertionSet(const SetSensorReadingReq& cmdData); |
| |
| /** @brief send the message to DBus |
| * @param[in] msg - message to send |
| * @return failure status in IPMI error code |
| */ |
| ipmi_ret_t updateToDbus(IpmiUpdateData& msg); |
| |
| namespace set |
| { |
| |
| /** @brief Make a DBus message for a Dbus call |
| * @param[in] updateInterface - Interface name |
| * @param[in] sensorPath - Path of the sensor |
| * @param[in] command - command to be executed |
| * @param[in] sensorInterface - DBus interface of sensor |
| * @return a dbus message |
| */ |
| IpmiUpdateData makeDbusMsg(const std::string& updateInterface, |
| const std::string& sensorPath, |
| const std::string& command, |
| const std::string& sensorInterface); |
| |
| /** @brief Create a message for IPMI assertion |
| * @param[in] msg - Message to add the values |
| * @param[in] interface - sensor interface |
| * @param[in] sensorPath - Path of the sensor |
| * @param[in] cmdData - input sensor data |
| * @return a IPMI error code |
| */ |
| ipmi_ret_t appendAssertion(IpmiUpdateData& msg, |
| const DbusInterfaceMap& interfaceMap, |
| const std::string& sensorPath, |
| const SetSensorReadingReq& cmdData); |
| |
| /** @brief Create a message for discrete signal |
| * @param[in] msg - Message to add the values |
| * @param[in] interface - sensor interface |
| * @param[in] data - input discrete sensor data |
| * @return a IPMI error code |
| */ |
| ipmi_ret_t appendDiscreteSignalData(IpmiUpdateData& msg, |
| const DbusInterfaceMap& interfaceMap, |
| uint8_t data); |
| |
| /** @brief Create a message for reading data |
| * @param[in] msg - Message to add the values |
| * @param[in] interface - sensor interface |
| * @param[in] data - input sensor data |
| * @return a IPMI error code |
| */ |
| ipmi_ret_t appendReadingData(IpmiUpdateData& msg, |
| const DbusInterfaceMap& interfaceMap, |
| const Value& data); |
| |
| }//namespace set |
| |
| namespace notify |
| { |
| |
| /** @brief Make a DBus message for a Dbus call |
| * @param[in] updateInterface - Interface name |
| * @param[in] sensorPath - Path of the sensor |
| * @param[in] command - command to be executed |
| * @param[in] sensorInterface - DBus interface of sensor |
| * @return a dbus message |
| */ |
| IpmiUpdateData makeDbusMsg(const std::string& updateInterface, |
| const std::string& sensorPath, |
| const std::string& command, |
| const std::string& sensorInterface); |
| |
| /** @brief Create a message for IPMI discrete signal |
| * @param[in] msg - Message to add the values |
| * @param[in] interfaceMap - sensor interface |
| * @param[in] sensorPath - Path of the sensor |
| * @param[in] cmdData - input sensor data |
| * @return a IPMI error code |
| */ |
| inline ipmi_ret_t appendDiscreteSignalData(IpmiUpdateData& msg, |
| const DbusInterfaceMap& interfaceMap, |
| uint8_t data) |
| { |
| return IPMI_CC_OK; |
| } |
| |
| /** @brief Create a message for reading data |
| * @param[in] msg - Message to add the values |
| * @param[in] interfaceMap - sensor interface |
| * @param[in] data - input sensor data |
| * @return a IPMI error code |
| */ |
| inline ipmi_ret_t appendReadingData(IpmiUpdateData& msg, |
| const DbusInterfaceMap& interfaceMap, |
| const Value &data) |
| { |
| return IPMI_CC_OK; |
| } |
| |
| /** @brief Create a message for IPMI asserting |
| * @param[in] msg - Message to add the values |
| * @param[in] interfaceMap - sensor interface |
| * @param[in] sensorPath - Path of the sensor |
| * @param[in] cmdData - input sensor data |
| * @return a IPMI error code |
| */ |
| ipmi_ret_t appendAssertion(IpmiUpdateData& msg, |
| const DbusInterfaceMap& interfaceMap, |
| const std::string& sensorPath, |
| const SetSensorReadingReq& cmdData); |
| |
| }//namespace notify |
| }//namespace sensor |
| }//namespace ipmi |