summaryrefslogtreecommitdiff
path: root/boost/log/sources/severity_logger.hpp
diff options
context:
space:
mode:
authorChanho Park <chanho61.park@samsung.com>2014-12-11 18:55:56 +0900
committerChanho Park <chanho61.park@samsung.com>2014-12-11 18:55:56 +0900
commit08c1e93fa36a49f49325a07fe91ff92c964c2b6c (patch)
tree7a7053ceb8874b28ec4b868d4c49b500008a102e /boost/log/sources/severity_logger.hpp
parentbb4dd8289b351fae6b55e303f189127a394a1edd (diff)
downloadboost-08c1e93fa36a49f49325a07fe91ff92c964c2b6c.tar.gz
boost-08c1e93fa36a49f49325a07fe91ff92c964c2b6c.tar.bz2
boost-08c1e93fa36a49f49325a07fe91ff92c964c2b6c.zip
Imported Upstream version 1.57.0upstream/1.57.0
Diffstat (limited to 'boost/log/sources/severity_logger.hpp')
-rw-r--r--boost/log/sources/severity_logger.hpp325
1 files changed, 325 insertions, 0 deletions
diff --git a/boost/log/sources/severity_logger.hpp b/boost/log/sources/severity_logger.hpp
new file mode 100644
index 0000000000..4e9fa580c0
--- /dev/null
+++ b/boost/log/sources/severity_logger.hpp
@@ -0,0 +1,325 @@
+/*
+ * Copyright Andrey Semashev 2007 - 2014.
+ * Distributed under the Boost Software License, Version 1.0.
+ * (See accompanying file LICENSE_1_0.txt or copy at
+ * http://www.boost.org/LICENSE_1_0.txt)
+ */
+/*!
+ * \file severity_logger.hpp
+ * \author Andrey Semashev
+ * \date 08.03.2007
+ *
+ * The header contains implementation of a logger with severity level support.
+ */
+
+#ifndef BOOST_LOG_SOURCES_SEVERITY_LOGGER_HPP_INCLUDED_
+#define BOOST_LOG_SOURCES_SEVERITY_LOGGER_HPP_INCLUDED_
+
+#include <boost/log/detail/config.hpp>
+#if !defined(BOOST_LOG_NO_THREADS)
+#include <boost/log/detail/light_rw_mutex.hpp>
+#endif // !defined(BOOST_LOG_NO_THREADS)
+#include <boost/log/sources/features.hpp>
+#include <boost/log/sources/basic_logger.hpp>
+#include <boost/log/sources/threading_models.hpp>
+#include <boost/log/sources/severity_feature.hpp>
+#include <boost/log/keywords/severity.hpp>
+#include <boost/log/detail/header.hpp>
+
+#ifdef BOOST_HAS_PRAGMA_ONCE
+#pragma once
+#endif
+
+namespace boost {
+
+BOOST_LOG_OPEN_NAMESPACE
+
+namespace sources {
+
+#ifndef BOOST_LOG_DOXYGEN_PASS
+
+#ifdef BOOST_LOG_USE_CHAR
+
+//! Narrow-char logger with severity level support
+template< typename LevelT = int >
+class severity_logger :
+ public basic_composite_logger<
+ char,
+ severity_logger< LevelT >,
+ single_thread_model,
+ features< severity< LevelT > >
+ >
+{
+ typedef typename severity_logger::logger_base base_type;
+
+public:
+ BOOST_LOG_FORWARD_LOGGER_MEMBERS_TEMPLATE(severity_logger)
+
+ explicit severity_logger(LevelT level) : base_type(keywords::severity = level)
+ {
+ }
+};
+
+#if !defined(BOOST_LOG_NO_THREADS)
+
+//! Narrow-char thread-safe logger with severity level support
+template< typename LevelT = int >
+class severity_logger_mt :
+ public basic_composite_logger<
+ char,
+ severity_logger_mt< LevelT >,
+ multi_thread_model< boost::log::aux::light_rw_mutex >,
+ features< severity< LevelT > >
+ >
+{
+ typedef typename severity_logger_mt::logger_base base_type;
+
+public:
+ BOOST_LOG_FORWARD_LOGGER_MEMBERS_TEMPLATE(severity_logger_mt)
+
+ explicit severity_logger_mt(LevelT level) : base_type(keywords::severity = level)
+ {
+ }
+};
+
+#endif // !defined(BOOST_LOG_NO_THREADS)
+
+#endif
+
+#ifdef BOOST_LOG_USE_WCHAR_T
+
+//! Wide-char logger with severity level support
+template< typename LevelT = int >
+class wseverity_logger :
+ public basic_composite_logger<
+ wchar_t,
+ wseverity_logger< LevelT >,
+ single_thread_model,
+ features< severity< LevelT > >
+ >
+{
+ typedef typename wseverity_logger::logger_base base_type;
+
+public:
+ BOOST_LOG_FORWARD_LOGGER_MEMBERS_TEMPLATE(wseverity_logger)
+
+ explicit wseverity_logger(LevelT level) : base_type(keywords::severity = level)
+ {
+ }
+};
+
+#if !defined(BOOST_LOG_NO_THREADS)
+
+//! Wide-char thread-safe logger with severity level support
+template< typename LevelT = int >
+class wseverity_logger_mt :
+ public basic_composite_logger<
+ wchar_t,
+ wseverity_logger_mt< LevelT >,
+ multi_thread_model< boost::log::aux::light_rw_mutex >,
+ features< severity< LevelT > >
+ >
+{
+ typedef typename wseverity_logger_mt::logger_base base_type;
+
+public:
+ BOOST_LOG_FORWARD_LOGGER_MEMBERS_TEMPLATE(wseverity_logger_mt)
+
+ explicit wseverity_logger_mt(LevelT level) : base_type(keywords::severity = level)
+ {
+ }
+};
+
+#endif // !defined(BOOST_LOG_NO_THREADS)
+
+#endif
+
+#else // BOOST_LOG_DOXYGEN_PASS
+
+/*!
+ * \brief Narrow-char logger. Functionally equivalent to \c basic_severity_logger.
+ *
+ * See \c severity class template for a more detailed description
+ */
+template< typename LevelT = int >
+class severity_logger :
+ public basic_composite_logger<
+ char,
+ severity_logger< LevelT >,
+ single_thread_model,
+ features< severity< LevelT > >
+ >
+{
+public:
+ /*!
+ * Default constructor
+ */
+ severity_logger();
+ /*!
+ * Copy constructor
+ */
+ severity_logger(severity_logger const& that);
+ /*!
+ * Constructor with named arguments
+ */
+ template< typename... ArgsT >
+ explicit severity_logger(ArgsT... const& args);
+ /*!
+ * The constructor creates the logger with the specified default severity level
+ *
+ * \param level The default severity level
+ */
+ explicit severity_logger(LevelT level);
+ /*!
+ * Assignment operator
+ */
+ severity_logger& operator= (severity_logger const& that)
+ /*!
+ * Swaps two loggers
+ */
+ void swap(severity_logger& that);
+};
+
+/*!
+ * \brief Narrow-char thread-safe logger. Functionally equivalent to \c basic_severity_logger.
+ *
+ * See \c severity class template for a more detailed description
+ */
+template< typename LevelT = int >
+class severity_logger_mt :
+ public basic_composite_logger<
+ char,
+ severity_logger_mt< LevelT >,
+ multi_thread_model< implementation_defined >,
+ features< severity< LevelT > >
+ >
+{
+public:
+ /*!
+ * Default constructor
+ */
+ severity_logger_mt();
+ /*!
+ * Copy constructor
+ */
+ severity_logger_mt(severity_logger_mt const& that);
+ /*!
+ * Constructor with named arguments
+ */
+ template< typename... ArgsT >
+ explicit severity_logger_mt(ArgsT... const& args);
+ /*!
+ * The constructor creates the logger with the specified default severity level
+ *
+ * \param level The default severity level
+ */
+ explicit severity_logger_mt(LevelT level);
+ /*!
+ * Assignment operator
+ */
+ severity_logger_mt& operator= (severity_logger_mt const& that)
+ /*!
+ * Swaps two loggers
+ */
+ void swap(severity_logger_mt& that);
+};
+
+/*!
+ * \brief Wide-char logger. Functionally equivalent to \c basic_severity_logger.
+ *
+ * See \c severity class template for a more detailed description
+ */
+template< typename LevelT = int >
+class wseverity_logger :
+ public basic_composite_logger<
+ wchar_t,
+ wseverity_logger< LevelT >,
+ single_thread_model,
+ features< severity< LevelT > >
+ >
+{
+public:
+ /*!
+ * Default constructor
+ */
+ wseverity_logger();
+ /*!
+ * Copy constructor
+ */
+ wseverity_logger(wseverity_logger const& that);
+ /*!
+ * Constructor with named arguments
+ */
+ template< typename... ArgsT >
+ explicit wseverity_logger(ArgsT... const& args);
+ /*!
+ * The constructor creates the logger with the specified default severity level
+ *
+ * \param level The default severity level
+ */
+ explicit wseverity_logger(LevelT level);
+ /*!
+ * Assignment operator
+ */
+ wseverity_logger& operator= (wseverity_logger const& that)
+ /*!
+ * Swaps two loggers
+ */
+ void swap(wseverity_logger& that);
+};
+
+/*!
+ * \brief Wide-char thread-safe logger. Functionally equivalent to \c basic_severity_logger.
+ *
+ * See \c severity class template for a more detailed description
+ */
+template< typename LevelT = int >
+class wseverity_logger_mt :
+ public basic_composite_logger<
+ wchar_t,
+ wseverity_logger_mt< LevelT >,
+ multi_thread_model< implementation_defined >,
+ features< severity< LevelT > >
+ >
+{
+public:
+ /*!
+ * Default constructor
+ */
+ wseverity_logger_mt();
+ /*!
+ * Copy constructor
+ */
+ wseverity_logger_mt(wseverity_logger_mt const& that);
+ /*!
+ * Constructor with named arguments
+ */
+ template< typename... ArgsT >
+ explicit wseverity_logger_mt(ArgsT... const& args);
+ /*!
+ * The constructor creates the logger with the specified default severity level
+ *
+ * \param level The default severity level
+ */
+ explicit wseverity_logger_mt(LevelT level);
+ /*!
+ * Assignment operator
+ */
+ wseverity_logger_mt& operator= (wseverity_logger_mt const& that)
+ /*!
+ * Swaps two loggers
+ */
+ void swap(wseverity_logger_mt& that);
+};
+
+#endif // BOOST_LOG_DOXYGEN_PASS
+
+} // namespace sources
+
+BOOST_LOG_CLOSE_NAMESPACE // namespace log
+
+} // namespace boost
+
+#include <boost/log/detail/footer.hpp>
+
+#endif // BOOST_LOG_SOURCES_SEVERITY_LOGGER_HPP_INCLUDED_