control: Add interfacesRemoved signal support

Subscribe to and handle interfacesRemoved signals to trigger event
actions.

Change-Id: I270dc02bfa78c1801c545712710b27a3d2ba2180
Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
diff --git a/control/json/triggers/signal.hpp b/control/json/triggers/signal.hpp
index 32a9021..f382828 100644
--- a/control/json/triggers/signal.hpp
+++ b/control/json/triggers/signal.hpp
@@ -61,6 +61,16 @@
 void interfacesAdded(Manager* mgr, const std::string& eventName,
                      std::unique_ptr<ActionBase>& action);
 
+/**
+ * @brief Subscribes to an interfacesRemoved signal
+ *
+ * @param[in] mgr - Pointer to manager of the trigger
+ * @param[in] eventName - Name of event associated to the signal
+ * @param[in] action - Action to be run when signal is received
+ */
+void interfacesRemoved(Manager* mgr, const std::string& eventName,
+                       std::unique_ptr<ActionBase>& action);
+
 // Match setup function for signals
 using SignalMatch = std::function<void(Manager*, const std::string&,
                                        std::unique_ptr<ActionBase>& action)>;
@@ -68,7 +78,8 @@
 /* Supported signals to their corresponding match setup functions */
 static const std::unordered_map<std::string, SignalMatch> signals = {
     {"properties_changed", propertiesChanged},
-    {"interfaces_added", interfacesAdded}};
+    {"interfaces_added", interfacesAdded},
+    {"interfaces_removed", interfacesRemoved}};
 
 /**
  * @brief Trigger to process an event after a signal is received