Add Softshutdown and Hardshutdown threshold interface

Added threshold interfaces like Softshutdown and Hardshutdown
interfaces in dbus-sensors. This is similiar to warning and
critical threshold interfaces.

To enable this Softshutdown and Hardshutdown interfaces, need to
set the Severity level in EM config. Severity value as 2 for
Softshutdown and Severity value as 3 for Hardshutdown.

TESTED: Tested on Facebook YosemiteV2 hardware. Verified the
Hardshutdown and Softshutdown interfaces are created
and displaying in dbus objects.

Signed-off-by: Jayashree Dhanapal <jayashree-d@hcl.com>
Change-Id: Ic9a6e719a8343321f894bc031688a17a3ed7fd67
diff --git a/include/Thresholds.hpp b/include/Thresholds.hpp
index 5dcc00d..50075a2 100644
--- a/include/Thresholds.hpp
+++ b/include/Thresholds.hpp
@@ -17,6 +17,8 @@
 {
     WARNING,
     CRITICAL,
+    SOFTSHUTDOWN,
+    HARDSHUTDOWN,
     ERROR
 };
 enum class Direction
diff --git a/include/sensor.hpp b/include/sensor.hpp
index 9d01482..7021430 100644
--- a/include/sensor.hpp
+++ b/include/sensor.hpp
@@ -104,7 +104,7 @@
         const char* dirOrder;
     };
 
-    constexpr static std::array<ThresholdProperty, 4> thresProp = {
+    constexpr static std::array<ThresholdProperty, 8> thresProp = {
         {{thresholds::Level::WARNING, thresholds::Direction::HIGH, 0,
           "WarningHigh", "WarningAlarmHigh", "greater than"},
          {thresholds::Level::WARNING, thresholds::Direction::LOW, 0,
@@ -112,9 +112,17 @@
          {thresholds::Level::CRITICAL, thresholds::Direction::HIGH, 1,
           "CriticalHigh", "CriticalAlarmHigh", "greater than"},
          {thresholds::Level::CRITICAL, thresholds::Direction::LOW, 1,
-          "CriticalLow", "CriticalAlarmLow", "less than"}}};
+          "CriticalLow", "CriticalAlarmLow", "less than"},
+         {thresholds::Level::SOFTSHUTDOWN, thresholds::Direction::HIGH, 2,
+          "SoftShutdownHigh", "SoftShutdownAlarmHigh", "greater than"},
+         {thresholds::Level::SOFTSHUTDOWN, thresholds::Direction::LOW, 2,
+          "SoftShutdownLow", "SoftShutdownAlarmLow", "less than"},
+         {thresholds::Level::HARDSHUTDOWN, thresholds::Direction::HIGH, 3,
+          "HardShutdownHigh", "HardShutdownAlarmHigh", "greater than"},
+         {thresholds::Level::HARDSHUTDOWN, thresholds::Direction::LOW, 3,
+          "HardShutdownLow", "HardShutdownAlarmLow", "less than"}}};
 
-    std::array<std::shared_ptr<sdbusplus::asio::dbus_interface>, 2>
+    std::array<std::shared_ptr<sdbusplus::asio::dbus_interface>, 4>
         thresholdInterfaces;
 
     std::shared_ptr<sdbusplus::asio::dbus_interface>