Mercurial > hg > vamp-build-and-test
comparison DEPENDENCIES/generic/include/boost/log/sinks/text_ostream_backend.hpp @ 16:2665513ce2d3
Add boost headers
author | Chris Cannam |
---|---|
date | Tue, 05 Aug 2014 11:11:38 +0100 |
parents | |
children | c530137014c0 |
comparison
equal
deleted
inserted
replaced
15:663ca0da4350 | 16:2665513ce2d3 |
---|---|
1 /* | |
2 * Copyright Andrey Semashev 2007 - 2013. | |
3 * Distributed under the Boost Software License, Version 1.0. | |
4 * (See accompanying file LICENSE_1_0.txt or copy at | |
5 * http://www.boost.org/LICENSE_1_0.txt) | |
6 */ | |
7 /*! | |
8 * \file text_ostream_backend.hpp | |
9 * \author Andrey Semashev | |
10 * \date 22.04.2007 | |
11 * | |
12 * The header contains implementation of a text output stream sink backend. | |
13 */ | |
14 | |
15 #ifndef BOOST_LOG_SINKS_TEXT_OSTREAM_BACKEND_HPP_INCLUDED_ | |
16 #define BOOST_LOG_SINKS_TEXT_OSTREAM_BACKEND_HPP_INCLUDED_ | |
17 | |
18 #include <ostream> | |
19 #include <boost/smart_ptr/shared_ptr.hpp> | |
20 #include <boost/log/detail/config.hpp> | |
21 #include <boost/log/sinks/basic_sink_backend.hpp> | |
22 #include <boost/log/sinks/frontend_requirements.hpp> | |
23 #include <boost/log/detail/header.hpp> | |
24 | |
25 #ifdef BOOST_HAS_PRAGMA_ONCE | |
26 #pragma once | |
27 #endif | |
28 | |
29 namespace boost { | |
30 | |
31 BOOST_LOG_OPEN_NAMESPACE | |
32 | |
33 namespace sinks { | |
34 | |
35 /*! | |
36 * \brief An implementation of a text output stream logging sink backend | |
37 * | |
38 * The sink backend puts formatted log records to one or more text streams. | |
39 */ | |
40 template< typename CharT > | |
41 class basic_text_ostream_backend : | |
42 public basic_formatted_sink_backend< | |
43 CharT, | |
44 combine_requirements< synchronized_feeding, flushing >::type | |
45 > | |
46 { | |
47 //! Base type | |
48 typedef basic_formatted_sink_backend< | |
49 CharT, | |
50 combine_requirements< synchronized_feeding, flushing >::type | |
51 > base_type; | |
52 | |
53 public: | |
54 //! Character type | |
55 typedef typename base_type::char_type char_type; | |
56 //! String type to be used as a message text holder | |
57 typedef typename base_type::string_type string_type; | |
58 //! Output stream type | |
59 typedef std::basic_ostream< char_type > stream_type; | |
60 | |
61 private: | |
62 //! \cond | |
63 | |
64 struct implementation; | |
65 implementation* m_pImpl; | |
66 | |
67 //! \endcond | |
68 | |
69 public: | |
70 /*! | |
71 * Constructor. No streams attached to the constructed backend, auto flush feature disabled. | |
72 */ | |
73 BOOST_LOG_API basic_text_ostream_backend(); | |
74 /*! | |
75 * Destructor | |
76 */ | |
77 BOOST_LOG_API ~basic_text_ostream_backend(); | |
78 | |
79 /*! | |
80 * The method adds a new stream to the sink. | |
81 * | |
82 * \param strm Pointer to the stream. Must not be NULL. | |
83 */ | |
84 BOOST_LOG_API void add_stream(shared_ptr< stream_type > const& strm); | |
85 /*! | |
86 * The method removes a stream from the sink. If the stream is not attached to the sink, | |
87 * the method has no effect. | |
88 * | |
89 * \param strm Pointer to the stream. Must not be NULL. | |
90 */ | |
91 BOOST_LOG_API void remove_stream(shared_ptr< stream_type > const& strm); | |
92 | |
93 /*! | |
94 * Sets the flag to automatically flush buffers of all attached streams after each log record | |
95 */ | |
96 BOOST_LOG_API void auto_flush(bool f = true); | |
97 | |
98 /*! | |
99 * The method writes the message to the sink | |
100 */ | |
101 BOOST_LOG_API void consume(record_view const& rec, string_type const& formatted_message); | |
102 | |
103 /*! | |
104 * The method flushes the associated streams | |
105 */ | |
106 BOOST_LOG_API void flush(); | |
107 }; | |
108 | |
109 #ifdef BOOST_LOG_USE_CHAR | |
110 typedef basic_text_ostream_backend< char > text_ostream_backend; //!< Convenience typedef for narrow-character logging | |
111 #endif | |
112 #ifdef BOOST_LOG_USE_WCHAR_T | |
113 typedef basic_text_ostream_backend< wchar_t > wtext_ostream_backend; //!< Convenience typedef for wide-character logging | |
114 #endif | |
115 | |
116 } // namespace sinks | |
117 | |
118 BOOST_LOG_CLOSE_NAMESPACE // namespace log | |
119 | |
120 } // namespace boost | |
121 | |
122 #include <boost/log/detail/footer.hpp> | |
123 | |
124 #endif // BOOST_LOG_SINKS_TEXT_OSTREAM_BACKEND_HPP_INCLUDED_ |