#include "bmc_monitor_app.hpp"

#include "boot_manager.hpp"
#include "dbus_handler.hpp"
#include "utils.hpp"

#include <sdbusplus/bus.hpp>

#include <memory>
#include <string_view>

namespace boot_time_monitor
{

BMCMonitorApp::BMCMonitorApp(sdbusplus::bus::bus& bus) :
    objManager(bus, kObjPath.data()), util(std::make_shared<Util>()),
    cpCSV(std::make_shared<FileUtil>(util->getCPPath(kNodeName, false))),
    durCSV(std::make_shared<FileUtil>(util->getDurPath(kNodeName, false))),
    bootManager(std::make_shared<BootManager>(util, cpCSV, durCSV)),
    dbusHandler(
        std::make_shared<DbusHandler>(bus, kObjPath.data(), bootManager, util))
{}

} // namespace boot_time_monitor
