#include <ipmid/api.hpp>
#include <sdbusplus/asio/connection.hpp>

#include <memory>

namespace
{

std::unique_ptr<sdbusplus::asio::connection> sdbusp;

} // namespace

/**
 * @brief ipmid_get_sdbus_plus_handler is used by some ipmi providers
 *
 * @return: a reference to a unique pointer of the systemd connection
 *          managed by the systemintfcmds code
 */
std::unique_ptr<sdbusplus::asio::connection>& ipmid_get_sdbus_plus_handler()
{
    if (!sdbusp)
    {
        // Create a new sdbus connection so it can have a well-known name
        sd_bus* bus = nullptr;
        sd_bus_open_system(&bus);
        if (bus)
        {
            sdbusp = std::make_unique<sdbusplus::asio::connection>(
                *getIoContext(), bus);
        }
    }
    return sdbusp;
}
