Fix copyright lines
[folly.git] / folly / experimental / logging / xlog.h
index ca229af5046a588067a4db9b493a7183c89cc9b4..06478af03ef33e90e9a113f8bfa171c9abe91bfe 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2004-present Facebook, Inc.
+ * Copyright 2017-present Facebook, Inc.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  *   initialized.  On all subsequent calls, disabled log statements can be
  *   skipped with just a single check of the LogLevel.
  */
-#define XLOG_IMPL(level, type, ...)                                      \
-  (!XLOG_IS_ON_IMPL(level))                                              \
-      ? static_cast<void>(0)                                             \
-      : ::folly::LogStreamVoidify<::folly::isLogLevelFatal(level)>{} &   \
-          ::folly::LogStreamProcessor(                                   \
-              [] {                                                       \
-                static ::folly::XlogCategoryInfo<XLOG_IS_IN_HEADER_FILE> \
-                    _xlogCategory_;                                      \
-                return _xlogCategory_.getInfo(                           \
-                    &xlog_detail::xlogFileScopeInfo);                    \
-              }(),                                                       \
-              (level),                                                   \
-              xlog_detail::getXlogCategoryName(__FILE__, 0),             \
-              xlog_detail::isXlogCategoryOverridden(0),                  \
-              __FILE__,                                                  \
-              __LINE__,                                                  \
-              (type),                                                    \
-              ##__VA_ARGS__)                                             \
+/* clang-format off */
+#define XLOG_IMPL(level, type, ...)                                          \
+  (!XLOG_IS_ON_IMPL(level))                                                  \
+      ? ::folly::logDisabledHelper(                                          \
+            std::integral_constant<bool, ::folly::isLogLevelFatal(level)>{}) \
+      : ::folly::LogStreamVoidify< ::folly::isLogLevelFatal(level)>{} &      \
+          ::folly::LogStreamProcessor(                                       \
+              [] {                                                           \
+                static ::folly::XlogCategoryInfo<XLOG_IS_IN_HEADER_FILE>     \
+                    _xlogCategory_;                                          \
+                return _xlogCategory_.getInfo(                               \
+                    &xlog_detail::xlogFileScopeInfo);                        \
+              }(),                                                           \
+              (level),                                                       \
+              xlog_detail::getXlogCategoryName(__FILE__, 0),                 \
+              xlog_detail::isXlogCategoryOverridden(0),                      \
+              __FILE__,                                                      \
+              __LINE__,                                                      \
+              (type),                                                        \
+              ##__VA_ARGS__)                                                 \
               .stream()
+/* clang-format on */
 
 /**
  * Check if and XLOG() statement with the given log level would be enabled.
+ *
+ * The level parameter must be an unqualified LogLevel enum value.
  */
 #define XLOG_IS_ON(level) XLOG_IS_ON_IMPL(::folly::LogLevel::level)
 
@@ -376,7 +381,7 @@ class XlogCategoryInfo<false> {
  * XLOG_SET_CATEGORY_NAME() has not been used.
  */
 std::string getXlogCategoryNameForFile(folly::StringPiece filename);
-}
+} // namespace folly
 
 /*
  * We intentionally use an unnamed namespace inside a header file here.
@@ -435,5 +440,5 @@ constexpr inline bool isXlogCategoryOverridden(T) {
  * statement.
  */
 ::folly::XlogFileScopeInfo xlogFileScopeInfo;
-}
-}
+} // namespace xlog_detail
+} // namespace