Namespace Log.h/cpp in dawn::

The LogMessage::LogMessage constructor was redefining a symbol that
exists in re2 inside of Chromium. So we namespace Log inside dawn:: to
avoid the conflict.

BUG=dawn:302

Change-Id: Ida349208e2c6fe9ac032e1bd8cd442dff0b3f6bc
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/14320
Commit-Queue: Austin Eng <enga@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
This commit is contained in:
Corentin Wallez
2019-12-06 18:21:39 +00:00
committed by Commit Bot service account
parent dd4584340d
commit dc3317da6c
12 changed files with 170 additions and 158 deletions

View File

@@ -45,46 +45,51 @@
#include <sstream>
// Log levels mostly used to signal intent where the log message is produced and used to route the
// message to the correct output.
enum class LogSeverity {
Debug,
Info,
Warning,
Error,
};
namespace dawn {
// Essentially an ostringstream that will print itself in its destructor.
class LogMessage {
public:
LogMessage(LogSeverity severity);
~LogMessage();
// Log levels mostly used to signal intent where the log message is produced and used to route
// the message to the correct output.
enum class LogSeverity {
Debug,
Info,
Warning,
Error,
};
LogMessage(LogMessage&& other) = default;
LogMessage& operator=(LogMessage&& other) = default;
// Essentially an ostringstream that will print itself in its destructor.
class LogMessage {
public:
LogMessage(LogSeverity severity);
~LogMessage();
template <typename T>
LogMessage& operator<<(T&& value) {
mStream << value;
return *this;
}
LogMessage(LogMessage&& other) = default;
LogMessage& operator=(LogMessage&& other) = default;
private:
LogMessage(const LogMessage& other) = delete;
LogMessage& operator=(const LogMessage& other) = delete;
template <typename T>
LogMessage& operator<<(T&& value) {
mStream << value;
return *this;
}
LogSeverity mSeverity;
std::ostringstream mStream;
};
private:
LogMessage(const LogMessage& other) = delete;
LogMessage& operator=(const LogMessage& other) = delete;
// Short-hands to create a LogMessage with the respective severity.
LogMessage DebugLog();
LogMessage InfoLog();
LogMessage WarningLog();
LogMessage ErrorLog();
LogSeverity mSeverity;
std::ostringstream mStream;
};
// DAWN_DEBUG is a helper macro that creates a DebugLog and outputs file/line/function information
LogMessage DebugLog(const char* file, const char* function, int line);
#define DAWN_DEBUG() DebugLog(__FILE__, __func__, __LINE__)
// Short-hands to create a LogMessage with the respective severity.
LogMessage DebugLog();
LogMessage InfoLog();
LogMessage WarningLog();
LogMessage ErrorLog();
// DAWN_DEBUG is a helper macro that creates a DebugLog and outputs file/line/function
// information
LogMessage DebugLog(const char* file, const char* function, int line);
#define DAWN_DEBUG() ::dawn::DebugLog(__FILE__, __func__, __LINE__)
} // namespace dawn
#endif // COMMON_LOG_H_