From 9e5115948bb800b009a35fd76c5598de8b17cee8 Mon Sep 17 00:00:00 2001 From: Pavel Kirienko Date: Tue, 8 Apr 2014 23:07:36 +0400 Subject: [PATCH] Out of line Logger methods --- libuavcan/include/uavcan/protocol/logger.hpp | 45 +++++++++----------- libuavcan/src/protocol/uc_logger.cpp | 16 +++++++ 2 files changed, 37 insertions(+), 24 deletions(-) diff --git a/libuavcan/include/uavcan/protocol/logger.hpp b/libuavcan/include/uavcan/protocol/logger.hpp index 41ffa7a891..9a55f2a523 100644 --- a/libuavcan/include/uavcan/protocol/logger.hpp +++ b/libuavcan/include/uavcan/protocol/logger.hpp @@ -78,19 +78,7 @@ public: #if UAVCAN_CPP_VERSION >= UAVCAN_CPP11 template - int log(LogLevel level, const char* source, const char* format, Args... args) - { - if (level >= level_ || level >= getExternalSinkLevel()) - { - msg_buf_.level.value = level; - msg_buf_.source = source; - msg_buf_.text.clear(); - CharArrayFormatter formatter(msg_buf_.text); - formatter.write(format, args...); - return log(msg_buf_); - } - return 0; - } + int log(LogLevel level, const char* source, const char* format, Args... args); template inline int logDebug(const char* source, const char* format, Args... args) @@ -118,17 +106,7 @@ public: #else - int log(LogLevel level, const char* source, const char* text) - { - if (level >= level_ || level >= getExternalSinkLevel()) - { - msg_buf_.level.value = level; - msg_buf_.source = source; - msg_buf_.text = text; - return log(msg_buf_); - } - return 0; - } + int log(LogLevel level, const char* source, const char* text); int logDebug(const char* source, const char* text) { @@ -153,4 +131,23 @@ public: #endif }; +#if UAVCAN_CPP_VERSION >= UAVCAN_CPP11 + +template +int Logger::log(LogLevel level, const char* source, const char* format, Args... args) +{ + if (level >= level_ || level >= getExternalSinkLevel()) + { + msg_buf_.level.value = level; + msg_buf_.source = source; + msg_buf_.text.clear(); + CharArrayFormatter formatter(msg_buf_.text); + formatter.write(format, args...); + return log(msg_buf_); + } + return 0; +} + +#endif + } diff --git a/libuavcan/src/protocol/uc_logger.cpp b/libuavcan/src/protocol/uc_logger.cpp index ddb32bc192..d9f578e7f6 100644 --- a/libuavcan/src/protocol/uc_logger.cpp +++ b/libuavcan/src/protocol/uc_logger.cpp @@ -34,4 +34,20 @@ int Logger::log(const protocol::debug::LogMessage& message) return retval; } +#if UAVCAN_CPP_VERSION < UAVCAN_CPP11 + +int Logger::log(LogLevel level, const char* source, const char* text) +{ + if (level >= level_ || level >= getExternalSinkLevel()) + { + msg_buf_.level.value = level; + msg_buf_.source = source; + msg_buf_.text = text; + return log(msg_buf_); + } + return 0; +} + +#endif + }