Browse Source

Merge pull request #633 from brain5lug/openssl

perfect forwarding for logging arguments
pull/636/head
orignal 8 years ago committed by GitHub
parent
commit
ba309fe6e5
  1. 2
      Log.cpp
  2. 14
      Log.h

2
Log.cpp

@ -10,7 +10,7 @@ @@ -10,7 +10,7 @@
namespace i2p {
namespace log {
Log logger;
static Log logger;
/**
* @brief Maps our loglevel to their symbolic name
*/

14
Log.h

@ -162,17 +162,17 @@ namespace log { @@ -162,17 +162,17 @@ namespace log {
/** internal usage only -- folding args array to single string */
template<typename TValue>
void LogPrint (std::stringstream& s, TValue arg)
void LogPrint (std::stringstream& s, TValue&& arg) noexcept
{
s << arg;
s << std::forward<TValue>(arg);
}
/** internal usage only -- folding args array to single string */
template<typename TValue, typename... TArgs>
void LogPrint (std::stringstream& s, TValue arg, TArgs... args)
void LogPrint (std::stringstream& s, TValue&& arg, TArgs&&... args) noexcept
{
LogPrint (s, arg);
LogPrint (s, args...);
LogPrint (s, std::forward<TValue>(arg));
LogPrint (s, std::forward<TArgs>(args)...);
}
/**
@ -181,7 +181,7 @@ void LogPrint (std::stringstream& s, TValue arg, TArgs... args) @@ -181,7 +181,7 @@ void LogPrint (std::stringstream& s, TValue arg, TArgs... args)
* @param args Array of message parts
*/
template<typename... TArgs>
void LogPrint (LogLevel level, TArgs... args)
void LogPrint (LogLevel level, TArgs&&... args) noexcept
{
i2p::log::Log &log = i2p::log::Logger();
if (level > log.GetLogLevel ())
@ -194,7 +194,7 @@ void LogPrint (LogLevel level, TArgs... args) @@ -194,7 +194,7 @@ void LogPrint (LogLevel level, TArgs... args)
ss << LOG_COLOR_ERROR;
else if (level == eLogWarning) // if log level is WARN color log message yellow
ss << LOG_COLOR_WARNING;
LogPrint (ss, args ...);
LogPrint (ss, std::forward<TArgs>(args)...);
// reset color
ss << LOG_COLOR_RESET;

Loading…
Cancel
Save