#include <systemd/sd-journal.h>

#include <cstdarg>
#include <phosphor-logging/sdjournal.hpp>

namespace phosphor
{
namespace logging
{

int SdJournalHandler::journal_send_call(const char*)
{
    return 0;
}

int SdJournalHandler::journal_send(const char* fmt, ...)
{
    va_list args;
    va_start(args, fmt);

    int rc = ::sd_journal_send(fmt, args, NULL);
    va_end(args);

    return rc;
}

SdJournalHandler sdjournal_impl;
SdJournalHandler* sdjournal_ptr = &sdjournal_impl;

SdJournalHandler* SwapJouralHandler(SdJournalHandler* with)
{
    SdJournalHandler* curr = sdjournal_ptr;
    sdjournal_ptr = with;
    return curr;
}

} // namespace logging
} // namespace phosphor