regs: Subscribe to InterfacesAdded signals

Subscribe to InterfacesAdded signals to handle not being able to read
the JSON configuration data filename from dbus due to the service
hosting that property is not available yet. The InterfacesAdded signal
is used to get notified when that property becomes available on dbus and
is read upon receiving the signal.

Tested:
    InterfacesAdded signals on an object path is received
    A string is used as the filename when the path, interface, and
property match from the InterfacesAdded signals received

Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
Change-Id: I0256145b9d2772efaae560513c73dc883ecd0a5b
diff --git a/phosphor-regulators/src/manager.hpp b/phosphor-regulators/src/manager.hpp
index eb0cef8..c2d78f1 100644
--- a/phosphor-regulators/src/manager.hpp
+++ b/phosphor-regulators/src/manager.hpp
@@ -2,6 +2,7 @@
 
 #include <interfaces/manager_interface.hpp>
 #include <sdbusplus/bus.hpp>
+#include <sdbusplus/bus/match.hpp>
 #include <sdbusplus/server/object.hpp>
 #include <sdeventplus/event.hpp>
 #include <sdeventplus/source/signal.hpp>
@@ -70,6 +71,13 @@
     void sighupHandler(sdeventplus::source::Signal& sigSrc,
                        const struct signalfd_siginfo* sigInfo);
 
+    /**
+     * @brief Callback function to handle interfacesAdded dbus signals
+     *
+     * @param[in] msg - Expanded sdbusplus message data
+     */
+    void signalHandler(sdbusplus::message::message& msg);
+
   private:
     /**
      * The dbus bus
@@ -87,6 +95,11 @@
     std::vector<Timer> timers;
 
     /**
+     * List of dbus signal matches
+     */
+    std::vector<std::unique_ptr<sdbusplus::bus::match::match>> signals;
+
+    /**
      * JSON configuration data filename
      */
     std::string fileName;