#include "Logger.h"
GGKLogReceiver Logger::logReceiverDebug = nullptr;
GGKLogReceiver Logger::logReceiverInfo = nullptr;
GGKLogReceiver Logger::logReceiverStatus = nullptr;
GGKLogReceiver Logger::logReceiverWarn = nullptr;
GGKLogReceiver Logger::logReceiverError = nullptr;
GGKLogReceiver Logger::logReceiverFatal = nullptr;
GGKLogReceiver Logger::logReceiverAlways = nullptr;
GGKLogReceiver Logger::logReceiverTrace = nullptr;
void Logger::registerDebugReceiver(GGKLogReceiver receiver) { logReceiverDebug = receiver; }
void Logger::registerInfoReceiver(GGKLogReceiver receiver) { logReceiverInfo = receiver; }
void Logger::registerStatusReceiver(GGKLogReceiver receiver) { logReceiverStatus = receiver; }
void Logger::registerWarnReceiver(GGKLogReceiver receiver) { logReceiverWarn = receiver; }
void Logger::registerErrorReceiver(GGKLogReceiver receiver) { logReceiverError = receiver; }
void Logger::registerFatalReceiver(GGKLogReceiver receiver) { logReceiverFatal = receiver; }
void Logger::registerAlwaysReceiver(GGKLogReceiver receiver) { logReceiverAlways = receiver; }
void Logger::registerTraceReceiver(GGKLogReceiver receiver) { logReceiverTrace = receiver; }
void Logger::debug(const char *pText) { if (nullptr != logReceiverDebug) { logReceiverDebug(pText); } }
void Logger::debug(const std::string &text) { if (nullptr != logReceiverDebug) { debug(text.c_str()); } }
void Logger::debug(const std::ostream &text) { if (nullptr != logReceiverDebug) { debug(static_cast<const std::ostringstream &>(text).str().c_str()); } }
void Logger::info(const char *pText) { if (nullptr != logReceiverInfo) { logReceiverInfo(pText); } }
void Logger::info(const std::string &text) { if (nullptr != logReceiverInfo) { info(text.c_str()); } }
void Logger::info(const std::ostream &text) { if (nullptr != logReceiverInfo) { info(static_cast<const std::ostringstream &>(text).str().c_str()); } }
void Logger::status(const char *pText) { if (nullptr != logReceiverStatus) { logReceiverStatus(pText); } }
void Logger::status(const std::string &text) { if (nullptr != logReceiverStatus) { status(text.c_str()); } }
void Logger::status(const std::ostream &text) { if (nullptr != logReceiverStatus) { status(static_cast<const std::ostringstream &>(text).str().c_str()); } }
void Logger::warn(const char *pText) { if (nullptr != logReceiverWarn) { logReceiverWarn(pText); } }
void Logger::warn(const std::string &text) { if (nullptr != logReceiverWarn) { warn(text.c_str()); } }
void Logger::warn(const std::ostream &text) { if (nullptr != logReceiverWarn) { warn(static_cast<const std::ostringstream &>(text).str().c_str()); } }
void Logger::error(const char *pText) { if (nullptr != logReceiverError) { logReceiverError(pText); } }
void Logger::error(const std::string &text) { if (nullptr != logReceiverError) { error(text.c_str()); } }
void Logger::error(const std::ostream &text) { if (nullptr != logReceiverError) { error(static_cast<const std::ostringstream &>(text).str().c_str()); } }
void Logger::fatal(const char *pText) { if (nullptr != logReceiverFatal) { logReceiverFatal(pText); } }
void Logger::fatal(const std::string &text) { if (nullptr != logReceiverFatal) { fatal(text.c_str()); } }
void Logger::fatal(const std::ostream &text) { if (nullptr != logReceiverFatal) { fatal(static_cast<const std::ostringstream &>(text).str().c_str()); } }
void Logger::always(const char *pText) { if (nullptr != logReceiverAlways) { logReceiverAlways(pText); } }
void Logger::always(const std::string &text) { if (nullptr != logReceiverAlways) { always(text.c_str()); } }
void Logger::always(const std::ostream &text) { if (nullptr != logReceiverAlways) { always(static_cast<const std::ostringstream &>(text).str().c_str()); } }
void Logger::trace(const char *pText) { if (nullptr != logReceiverTrace) { logReceiverTrace(pText); } }
void Logger::trace(const std::string &text) { if (nullptr != logReceiverTrace) { trace(text.c_str()); } }
void Logger::trace(const std::ostream &text) { if (nullptr != logReceiverTrace) { trace(static_cast<const std::ostringstream &>(text).str().c_str()); } }