diff options
author | Chanho Park <chanho61.park@samsung.com> | 2014-12-11 18:55:56 +0900 |
---|---|---|
committer | Chanho Park <chanho61.park@samsung.com> | 2014-12-11 18:55:56 +0900 |
commit | 08c1e93fa36a49f49325a07fe91ff92c964c2b6c (patch) | |
tree | 7a7053ceb8874b28ec4b868d4c49b500008a102e /boost/log/sources/severity_logger.hpp | |
parent | bb4dd8289b351fae6b55e303f189127a394a1edd (diff) | |
download | boost-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.hpp | 325 |
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_ |