summaryrefslogtreecommitdiffstats
path: root/src/generated.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/generated.cpp')
-rw-r--r--src/generated.cpp184
1 files changed, 184 insertions, 0 deletions
diff --git a/src/generated.cpp b/src/generated.cpp
new file mode 100644
index 0000000..6ef7cd1
--- /dev/null
+++ b/src/generated.cpp
@@ -0,0 +1,184 @@
+#include "data_types.hpp"
+#include "functor.hpp"
+#include "monitor.hpp"
+#include "conditions.hpp"
+#include "actions.hpp"
+
+namespace phosphor
+{
+namespace dbus
+{
+namespace monitoring
+{
+
+// Example vector of sensors constructing a group
+static Group fan_zone_group = {
+ std::make_tuple(
+ "/xyz/openbmc_project/sensors/fan_tach/fan0",
+ static_cast<int64_t>(0)
+ ),
+ std::make_tuple(
+ "/xyz/openbmc_project/sensors/fan_tach/fan1",
+ static_cast<int64_t>(0)
+ ),
+ std::make_tuple(
+ "/xyz/openbmc_project/sensors/fan_tach/fan2",
+ static_cast<int64_t>(0)
+ ),
+ std::make_tuple(
+ "/xyz/openbmc_project/sensors/fan_tach/fan3",
+ static_cast<int64_t>(0)
+ )
+};
+
+const std::vector<std::tuple<std::vector<std::shared_ptr<Event>>,
+ std::vector<Action>>>
+ Monitor::events
+{ // Example vector of Events with START trigger
+ {std::make_tuple(std::vector<std::shared_ptr<Event>>(
+ { // Example vector of StartEvent
+ std::make_shared<StartEvent>(
+ std::vector<Condition>(
+ { // Example vector of StartEvent conditions
+ make_condition(propertyStart<int64_t>(
+ "/xyz/openbmc_project/sensors/fan_tach/fan0",
+ "xyz.openbmc_project.Sensor.Value",
+ "Value",
+ condition::countAtOrAbove(
+ fan_zone_group,
+ "/xyz/openbmc_project/sensors/fan_tach/fan0",
+ static_cast<size_t>(3),
+ static_cast<int64_t>(8000ll)
+ )
+ )),
+ make_condition(propertyStart<int64_t>(
+ "/xyz/openbmc_project/sensors/fan_tach/fan1",
+ "xyz.openbmc_project.Sensor.Value",
+ "Value",
+ condition::countAtOrAbove(
+ fan_zone_group,
+ "/xyz/openbmc_project/sensors/fan_tach/fan1",
+ static_cast<size_t>(3),
+ static_cast<int64_t>(8000ll)
+ )
+ )),
+ make_condition(propertyStart<int64_t>(
+ "/xyz/openbmc_project/sensors/fan_tach/fan2",
+ "xyz.openbmc_project.Sensor.Value",
+ "Value",
+ condition::countAtOrAbove(
+ fan_zone_group,
+ "/xyz/openbmc_project/sensors/fan_tach/fan2",
+ static_cast<size_t>(3),
+ static_cast<int64_t>(8000ll)
+ )
+ )),
+ make_condition(propertyStart<int64_t>(
+ "/xyz/openbmc_project/sensors/fan_tach/fan3",
+ "xyz.openbmc_project.Sensor.Value",
+ "Value",
+ condition::countAtOrAbove(
+ fan_zone_group,
+ "/xyz/openbmc_project/sensors/fan_tach/fan3",
+ static_cast<size_t>(3),
+ static_cast<int64_t>(8000ll)
+ )
+ )),
+ }
+ )
+ ),
+ std::make_shared<SignalEvent>(
+ "interface='org.freedesktop.DBus.Properties',"
+ "member='PropertiesChanged',"
+ "type='signal',"
+ "path='/xyz/openbmc_project/sensors/fan_tach/fan0'",
+ std::vector<Condition>(
+ { // Example vector of SignalEvent conditions
+ make_condition(propertySignal<int64_t>(
+ "xyz.openbmc_project.Sensor.Value",
+ "Value",
+ condition::countAtOrAbove(
+ fan_zone_group,
+ "/xyz/openbmc_project/sensors/fan_tach/fan0",
+ static_cast<size_t>(3),
+ static_cast<int64_t>(8000ll)
+ )
+ ))
+ }
+ )
+ ),
+ std::make_shared<SignalEvent>(
+ "interface='org.freedesktop.DBus.Properties',"
+ "member='PropertiesChanged',"
+ "type='signal',"
+ "path='/xyz/openbmc_project/sensors/fan_tach/fan1'",
+ std::vector<Condition>(
+ { // Example vector of SignalEvent conditions
+ make_condition(propertySignal<int64_t>(
+ "xyz.openbmc_project.Sensor.Value",
+ "Value",
+ condition::countAtOrAbove(
+ fan_zone_group,
+ "/xyz/openbmc_project/sensors/fan_tach/fan1",
+ static_cast<size_t>(3),
+ static_cast<int64_t>(8000ll)
+ )
+ ))
+ }
+ )
+ ),
+ std::make_shared<SignalEvent>(
+ "interface='org.freedesktop.DBus.Properties',"
+ "member='PropertiesChanged',"
+ "type='signal',"
+ "path='/xyz/openbmc_project/sensors/fan_tach/fan2'",
+ std::vector<Condition>(
+ { // Example vector of SignalEvent conditions
+ make_condition(propertySignal<int64_t>(
+ "xyz.openbmc_project.Sensor.Value",
+ "Value",
+ condition::countAtOrAbove(
+ fan_zone_group,
+ "/xyz/openbmc_project/sensors/fan_tach/fan2",
+ static_cast<size_t>(3),
+ static_cast<int64_t>(8000ll)
+ )
+ ))
+ }
+ )
+ ),
+ std::make_shared<SignalEvent>(
+ "interface='org.freedesktop.DBus.Properties',"
+ "member='PropertiesChanged',"
+ "type='signal',"
+ "path='/xyz/openbmc_project/sensors/fan_tach/fan3'",
+ std::vector<Condition>(
+ { // Example vector of SignalEvent conditions
+ make_condition(propertySignal<int64_t>(
+ "xyz.openbmc_project.Sensor.Value",
+ "Value",
+ condition::countAtOrAbove(
+ fan_zone_group,
+ "/xyz/openbmc_project/sensors/fan_tach/fan3",
+ static_cast<size_t>(3),
+ static_cast<int64_t>(8000ll)
+ )
+ ))
+ }
+ )
+ )
+ }),
+ std::vector<Action>(
+ {
+ make_action(
+ action::log_error(
+ "ERROR: Number of fans at or above 8000rpms reached"
+ )
+ )
+ })
+ )}
+};
+
+} // namespace monitoring
+} // namespace dbus
+} // namespace phosphor
OpenPOWER on IntegriCloud