1 #pragma once 2 #include <functional> 3 #include <org/open_power/Sensor/Aggregation/History/Average/server.hpp> 4 5 namespace witherspoon 6 { 7 namespace power 8 { 9 namespace history 10 { 11 12 template <typename T> 13 using ServerObject = typename sdbusplus::server::object::object<T>; 14 15 using AverageInterface = 16 sdbusplus::org::open_power::Sensor::Aggregation::History::server::Average; 17 18 /** 19 * @class Average 20 * 21 * Implements Sensor.Aggregation.History.Average 22 * 23 * This includes a property that is an array of timestamp/average tuples 24 * and a property to specify the scale. 25 */ 26 class Average : public ServerObject<AverageInterface> 27 { 28 public: 29 static constexpr auto name = "average"; 30 31 Average() = delete; 32 Average(const Average&) = delete; 33 Average& operator=(const Average&) = delete; 34 Average(Average&&) = delete; 35 Average& operator=(Average&&) = delete; 36 ~Average() = default; 37 38 /** 39 * @brief Constructor 40 * 41 * @param[in] bus - D-Bus object 42 * @param[in] objectPath - the D-Bus object path 43 */ 44 Average(sdbusplus::bus::bus& bus, const std::string& objectPath) : 45 ServerObject<AverageInterface>(bus, objectPath.c_str()) 46 { 47 unit(Average::Unit::Watts); 48 scale(0); 49 } 50 }; 51 52 } // namespace history 53 } // namespace power 54 } // namespace witherspoon 55