diff options
Diffstat (limited to 'src/main.cpp')
-rw-r--r-- | src/main.cpp | 30 |
1 files changed, 20 insertions, 10 deletions
diff --git a/src/main.cpp b/src/main.cpp index 00d7200..79c4062 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -13,27 +13,37 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -#include <sdbusplus/bus.hpp> +#include "sdbusplus.hpp" #include "generated.hpp" #include "monitor.hpp" -int main(void) -{ - auto bus = sdbusplus::bus::new_default(); +using namespace phosphor::dbus::monitoring; - phosphor::dbus::monitoring::Monitor monitor(bus); +struct Loop +{ + /** @brief indefinitely process dbus traffic. */ + static void run() + { + auto& bus = SDBusPlus::getBus(); + auto& event = SDEvent::getEvent(); + event.attach(bus); + event.loop(); + } +}; - for (auto& watch : phosphor::dbus::monitoring::ConfigPropertyWatches::get()) +int main(void) +{ + for (auto& watch : ConfigPropertyWatches::get()) { watch->start(); } - // Keep application running - while (true) + for (auto& watch : ConfigPropertyWatches::get()) { - bus.process_discard(); - bus.wait(); + watch->callback(); } + Loop::run(); + return -1; } |