annotate DEPENDENCIES/generic/include/boost/log/sources/channel_logger.hpp @ 133:4acb5d8d80b6 tip

Don't fail environmental check if README.md exists (but .txt and no-suffix don't)
author Chris Cannam
date Tue, 30 Jul 2019 12:25:44 +0100
parents c530137014c0
children
rev   line source
Chris@16 1 /*
Chris@101 2 * Copyright Andrey Semashev 2007 - 2015.
Chris@16 3 * Distributed under the Boost Software License, Version 1.0.
Chris@16 4 * (See accompanying file LICENSE_1_0.txt or copy at
Chris@16 5 * http://www.boost.org/LICENSE_1_0.txt)
Chris@16 6 */
Chris@16 7 /*!
Chris@16 8 * \file channel_logger.hpp
Chris@16 9 * \author Andrey Semashev
Chris@16 10 * \date 28.02.2008
Chris@16 11 *
Chris@16 12 * The header contains implementation of a logger with channel support.
Chris@16 13 */
Chris@16 14
Chris@16 15 #ifndef BOOST_LOG_SOURCES_CHANNEL_LOGGER_HPP_INCLUDED_
Chris@16 16 #define BOOST_LOG_SOURCES_CHANNEL_LOGGER_HPP_INCLUDED_
Chris@16 17
Chris@16 18 #include <boost/log/detail/config.hpp>
Chris@16 19 #if !defined(BOOST_LOG_NO_THREADS)
Chris@16 20 #include <boost/log/detail/light_rw_mutex.hpp>
Chris@16 21 #endif // !defined(BOOST_LOG_NO_THREADS)
Chris@16 22 #include <boost/log/sources/features.hpp>
Chris@16 23 #include <boost/log/sources/basic_logger.hpp>
Chris@16 24 #include <boost/log/sources/threading_models.hpp>
Chris@16 25 #include <boost/log/sources/channel_feature.hpp>
Chris@16 26 #include <boost/log/keywords/channel.hpp>
Chris@16 27 #include <boost/log/detail/header.hpp>
Chris@16 28
Chris@16 29 #ifdef BOOST_HAS_PRAGMA_ONCE
Chris@16 30 #pragma once
Chris@16 31 #endif
Chris@16 32
Chris@16 33 namespace boost {
Chris@16 34
Chris@16 35 BOOST_LOG_OPEN_NAMESPACE
Chris@16 36
Chris@16 37 namespace sources {
Chris@16 38
Chris@16 39 #ifndef BOOST_LOG_DOXYGEN_PASS
Chris@16 40
Chris@16 41 #ifdef BOOST_LOG_USE_CHAR
Chris@16 42
Chris@16 43 //! Narrow-char logger with channel support
Chris@16 44 template< typename ChannelT = std::string >
Chris@16 45 class channel_logger :
Chris@16 46 public basic_composite_logger<
Chris@16 47 char,
Chris@16 48 channel_logger< ChannelT >,
Chris@16 49 single_thread_model,
Chris@16 50 features< channel< ChannelT > >
Chris@16 51 >
Chris@16 52 {
Chris@16 53 typedef typename channel_logger::logger_base base_type;
Chris@16 54
Chris@16 55 public:
Chris@16 56 BOOST_LOG_FORWARD_LOGGER_MEMBERS_TEMPLATE(channel_logger)
Chris@16 57
Chris@16 58 explicit channel_logger(ChannelT const& channel) : base_type(keywords::channel = channel)
Chris@16 59 {
Chris@16 60 }
Chris@16 61 };
Chris@16 62
Chris@16 63 #if !defined(BOOST_LOG_NO_THREADS)
Chris@16 64
Chris@16 65 //! Narrow-char thread-safe logger with channel support
Chris@16 66 template< typename ChannelT = std::string >
Chris@16 67 class channel_logger_mt :
Chris@16 68 public basic_composite_logger<
Chris@16 69 char,
Chris@16 70 channel_logger_mt< ChannelT >,
Chris@16 71 multi_thread_model< boost::log::aux::light_rw_mutex >,
Chris@16 72 features< channel< ChannelT > >
Chris@16 73 >
Chris@16 74 {
Chris@16 75 typedef typename channel_logger_mt::logger_base base_type;
Chris@16 76
Chris@16 77 public:
Chris@16 78 BOOST_LOG_FORWARD_LOGGER_MEMBERS_TEMPLATE(channel_logger_mt)
Chris@16 79
Chris@16 80 explicit channel_logger_mt(ChannelT const& channel) : base_type(keywords::channel = channel)
Chris@16 81 {
Chris@16 82 }
Chris@16 83 };
Chris@16 84
Chris@16 85 #endif // !defined(BOOST_LOG_NO_THREADS)
Chris@16 86
Chris@16 87 #endif // BOOST_LOG_USE_CHAR
Chris@16 88
Chris@16 89 #ifdef BOOST_LOG_USE_WCHAR_T
Chris@16 90
Chris@16 91 //! Wide-char logger with channel support
Chris@16 92 template< typename ChannelT = std::wstring >
Chris@16 93 class wchannel_logger :
Chris@16 94 public basic_composite_logger<
Chris@16 95 wchar_t,
Chris@16 96 wchannel_logger< ChannelT >,
Chris@16 97 single_thread_model,
Chris@16 98 features< channel< ChannelT > >
Chris@16 99 >
Chris@16 100 {
Chris@16 101 typedef typename wchannel_logger::logger_base base_type;
Chris@16 102
Chris@16 103 public:
Chris@16 104 BOOST_LOG_FORWARD_LOGGER_MEMBERS_TEMPLATE(wchannel_logger)
Chris@16 105
Chris@16 106 explicit wchannel_logger(ChannelT const& channel) : base_type(keywords::channel = channel)
Chris@16 107 {
Chris@16 108 }
Chris@16 109 };
Chris@16 110
Chris@16 111 #if !defined(BOOST_LOG_NO_THREADS)
Chris@16 112
Chris@16 113 //! Wide-char thread-safe logger with channel support
Chris@16 114 template< typename ChannelT = std::wstring >
Chris@16 115 class wchannel_logger_mt :
Chris@16 116 public basic_composite_logger<
Chris@16 117 wchar_t,
Chris@16 118 wchannel_logger< ChannelT >,
Chris@16 119 multi_thread_model< boost::log::aux::light_rw_mutex >,
Chris@16 120 features< channel< ChannelT > >
Chris@16 121 >
Chris@16 122 {
Chris@16 123 typedef typename wchannel_logger_mt::logger_base base_type;
Chris@16 124
Chris@16 125 public:
Chris@16 126 BOOST_LOG_FORWARD_LOGGER_MEMBERS_TEMPLATE(wchannel_logger_mt)
Chris@16 127
Chris@16 128 explicit wchannel_logger_mt(ChannelT const& channel) : base_type(keywords::channel = channel)
Chris@16 129 {
Chris@16 130 }
Chris@16 131 };
Chris@16 132
Chris@16 133 #endif // !defined(BOOST_LOG_NO_THREADS)
Chris@16 134
Chris@16 135 #endif // BOOST_LOG_USE_WCHAR_T
Chris@16 136
Chris@16 137 #else // BOOST_LOG_DOXYGEN_PASS
Chris@16 138
Chris@16 139 /*!
Chris@16 140 * \brief Narrow-char logger. Functionally equivalent to \c basic_channel_logger.
Chris@16 141 *
Chris@16 142 * See \c channel class template for a more detailed description
Chris@16 143 */
Chris@16 144 template< typename ChannelT = std::string >
Chris@16 145 class channel_logger :
Chris@16 146 public basic_composite_logger<
Chris@16 147 char,
Chris@16 148 channel_logger< ChannelT >,
Chris@16 149 single_thread_model,
Chris@16 150 features< channel< ChannelT > >
Chris@16 151 >
Chris@16 152 {
Chris@16 153 public:
Chris@16 154 /*!
Chris@16 155 * Default constructor
Chris@16 156 */
Chris@16 157 channel_logger();
Chris@16 158 /*!
Chris@16 159 * Copy constructor
Chris@16 160 */
Chris@16 161 channel_logger(channel_logger const& that);
Chris@16 162 /*!
Chris@16 163 * Constructor with named arguments
Chris@16 164 */
Chris@16 165 template< typename... ArgsT >
Chris@16 166 explicit channel_logger(ArgsT... const& args);
Chris@16 167 /*!
Chris@16 168 * The constructor creates the logger with the specified channel name
Chris@16 169 *
Chris@16 170 * \param channel The channel name
Chris@16 171 */
Chris@16 172 explicit channel_logger(ChannelT const& channel);
Chris@16 173 /*!
Chris@16 174 * Assignment operator
Chris@16 175 */
Chris@16 176 channel_logger& operator= (channel_logger const& that)
Chris@16 177 /*!
Chris@16 178 * Swaps two loggers
Chris@16 179 */
Chris@16 180 void swap(channel_logger& that);
Chris@16 181 };
Chris@16 182
Chris@16 183 /*!
Chris@16 184 * \brief Narrow-char thread-safe logger. Functionally equivalent to \c basic_channel_logger.
Chris@16 185 *
Chris@16 186 * See \c channel class template for a more detailed description
Chris@16 187 */
Chris@16 188 template< typename ChannelT = std::string >
Chris@16 189 class channel_logger_mt :
Chris@16 190 public basic_composite_logger<
Chris@16 191 char,
Chris@16 192 channel_logger_mt< ChannelT >,
Chris@16 193 multi_thread_model< implementation_defined >,
Chris@16 194 features< channel< ChannelT > >
Chris@16 195 >
Chris@16 196 {
Chris@16 197 public:
Chris@16 198 /*!
Chris@16 199 * Default constructor
Chris@16 200 */
Chris@16 201 channel_logger_mt();
Chris@16 202 /*!
Chris@16 203 * Copy constructor
Chris@16 204 */
Chris@16 205 channel_logger_mt(channel_logger_mt const& that);
Chris@16 206 /*!
Chris@16 207 * Constructor with named arguments
Chris@16 208 */
Chris@16 209 template< typename... ArgsT >
Chris@16 210 explicit channel_logger_mt(ArgsT... const& args);
Chris@16 211 /*!
Chris@16 212 * The constructor creates the logger with the specified channel name
Chris@16 213 *
Chris@16 214 * \param channel The channel name
Chris@16 215 */
Chris@16 216 explicit channel_logger_mt(ChannelT const& channel);
Chris@16 217 /*!
Chris@16 218 * Assignment operator
Chris@16 219 */
Chris@16 220 channel_logger_mt& operator= (channel_logger_mt const& that)
Chris@16 221 /*!
Chris@16 222 * Swaps two loggers
Chris@16 223 */
Chris@16 224 void swap(channel_logger_mt& that);
Chris@16 225 };
Chris@16 226
Chris@16 227 /*!
Chris@16 228 * \brief Wide-char logger. Functionally equivalent to \c basic_channel_logger.
Chris@16 229 *
Chris@16 230 * See \c channel class template for a more detailed description
Chris@16 231 */
Chris@16 232 template< typename ChannelT = std::wstring >
Chris@16 233 class wchannel_logger :
Chris@16 234 public basic_composite_logger<
Chris@16 235 wchar_t,
Chris@16 236 wchannel_logger< ChannelT >,
Chris@16 237 single_thread_model,
Chris@16 238 features< channel< ChannelT > >
Chris@16 239 >
Chris@16 240 {
Chris@16 241 public:
Chris@16 242 /*!
Chris@16 243 * Default constructor
Chris@16 244 */
Chris@16 245 wchannel_logger();
Chris@16 246 /*!
Chris@16 247 * Copy constructor
Chris@16 248 */
Chris@16 249 wchannel_logger(wchannel_logger const& that);
Chris@16 250 /*!
Chris@16 251 * Constructor with named arguments
Chris@16 252 */
Chris@16 253 template< typename... ArgsT >
Chris@16 254 explicit wchannel_logger(ArgsT... const& args);
Chris@16 255 /*!
Chris@16 256 * The constructor creates the logger with the specified channel name
Chris@16 257 *
Chris@16 258 * \param channel The channel name
Chris@16 259 */
Chris@16 260 explicit wchannel_logger(ChannelT const& channel);
Chris@16 261 /*!
Chris@16 262 * Assignment operator
Chris@16 263 */
Chris@16 264 wchannel_logger& operator= (wchannel_logger const& that)
Chris@16 265 /*!
Chris@16 266 * Swaps two loggers
Chris@16 267 */
Chris@16 268 void swap(wchannel_logger& that);
Chris@16 269 };
Chris@16 270
Chris@16 271 /*!
Chris@16 272 * \brief Wide-char thread-safe logger. Functionally equivalent to \c basic_channel_logger.
Chris@16 273 *
Chris@16 274 * See \c channel class template for a more detailed description
Chris@16 275 */
Chris@16 276 template< typename ChannelT = std::wstring >
Chris@16 277 class wchannel_logger_mt :
Chris@16 278 public basic_composite_logger<
Chris@16 279 wchar_t,
Chris@16 280 wchannel_logger< ChannelT >,
Chris@16 281 multi_thread_model< implementation_defined >,
Chris@16 282 features< channel< ChannelT > >
Chris@16 283 >
Chris@16 284 {
Chris@16 285 public:
Chris@16 286 /*!
Chris@16 287 * Default constructor
Chris@16 288 */
Chris@16 289 wchannel_logger_mt();
Chris@16 290 /*!
Chris@16 291 * Copy constructor
Chris@16 292 */
Chris@16 293 wchannel_logger_mt(wchannel_logger_mt const& that);
Chris@16 294 /*!
Chris@16 295 * Constructor with named arguments
Chris@16 296 */
Chris@16 297 template< typename... ArgsT >
Chris@16 298 explicit wchannel_logger_mt(ArgsT... const& args);
Chris@16 299 /*!
Chris@16 300 * The constructor creates the logger with the specified channel name
Chris@16 301 *
Chris@16 302 * \param channel The channel name
Chris@16 303 */
Chris@16 304 explicit wchannel_logger_mt(ChannelT const& channel);
Chris@16 305 /*!
Chris@16 306 * Assignment operator
Chris@16 307 */
Chris@16 308 wchannel_logger_mt& operator= (wchannel_logger_mt const& that)
Chris@16 309 /*!
Chris@16 310 * Swaps two loggers
Chris@16 311 */
Chris@16 312 void swap(wchannel_logger_mt& that);
Chris@16 313 };
Chris@16 314
Chris@16 315 #endif // BOOST_LOG_DOXYGEN_PASS
Chris@16 316
Chris@16 317 } // namespace sources
Chris@16 318
Chris@16 319 BOOST_LOG_CLOSE_NAMESPACE // namespace log
Chris@16 320
Chris@16 321 } // namespace boost
Chris@16 322
Chris@16 323 #include <boost/log/detail/footer.hpp>
Chris@16 324
Chris@16 325 #endif // BOOST_LOG_SOURCES_CHANNEL_LOGGER_HPP_INCLUDED_