blob: d952d2bcc670e8af7dc8395b6704ff3d72a2ae82 [file] [log] [blame]
Matt Spinler7d24ee82018-01-18 13:56:12 -06001#pragma once
2#include <functional>
3#include <org/open_power/Sensor/Aggregation/History/Maximum/server.hpp>
4
5namespace witherspoon
6{
7namespace power
8{
9namespace history
10{
11
12template <typename T>
13using ServerObject = typename sdbusplus::server::object::object<T>;
14
Matt Spinlerf0f02b92018-10-25 16:12:43 -050015using MaximumInterface =
16 sdbusplus::org::open_power::Sensor::Aggregation::History::server::Maximum;
Matt Spinler7d24ee82018-01-18 13:56:12 -060017
18/**
19 * @class Maximum
20 *
21 * Implements Sensor.Aggregation.History.Maximum
22 *
23 * This includes a property that is an array of timestamp/maximum tuples
24 * and a property to specify the scale.
25 */
26class Maximum : public ServerObject<MaximumInterface>
27{
Matt Spinlerf0f02b92018-10-25 16:12:43 -050028 public:
29 static constexpr auto name = "maximum";
Matt Spinler7d24ee82018-01-18 13:56:12 -060030
Matt Spinlerf0f02b92018-10-25 16:12:43 -050031 Maximum() = delete;
32 Maximum(const Maximum&) = delete;
33 Maximum& operator=(const Maximum&) = delete;
34 Maximum(Maximum&&) = delete;
35 Maximum& operator=(Maximum&&) = delete;
36 ~Maximum() = default;
Matt Spinler7d24ee82018-01-18 13:56:12 -060037
Matt Spinlerf0f02b92018-10-25 16:12:43 -050038 /**
39 * @brief Constructor
40 *
41 * @param[in] bus - D-Bus object
42 * @param[in] objectPath - the D-Bus object path
43 */
44 Maximum(sdbusplus::bus::bus& bus, const std::string& objectPath) :
45 ServerObject<MaximumInterface>(bus, objectPath.c_str())
46 {
47 unit(Maximum::Unit::Watts);
48 scale(0);
49 }
Matt Spinler7d24ee82018-01-18 13:56:12 -060050};
51
Matt Spinlerf0f02b92018-10-25 16:12:43 -050052} // namespace history
53} // namespace power
54} // namespace witherspoon