From 2ecc70e0b30fe4aba35fa4d844c93ba9bca7e2c0 Mon Sep 17 00:00:00 2001 From: Andrey Semashev Date: Sun, 1 Sep 2013 11:15:01 +0000 Subject: [PATCH] intrusive_ref_counter moved to Boost.SmartPtr. Cleaned some of the includes. [SVN r85542] --- doc/changelog.qbk | 3 +- example/advanced_usage/main.cpp | 2 +- example/async_log/main.cpp | 2 +- example/bounded_async_log/main.cpp | 2 +- example/doc/core_core_manual.cpp | 2 +- example/doc/exception_handling.cpp | 4 +- .../doc/expressions_has_attr_stat_accum.cpp | 4 +- example/doc/extension_app_launcher.cpp | 2 +- example/doc/extension_filter_parser.cpp | 4 +- .../extension_filter_parser_custom_rel.cpp | 4 +- example/doc/extension_formatter_parser.cpp | 4 +- example/doc/extension_record_tagger.cpp | 4 +- example/doc/extension_stat_collector.cpp | 2 +- .../doc/extension_stat_collector_settings.cpp | 4 +- example/doc/extension_system_uptime_attr.cpp | 2 +- example/doc/sinks_async.cpp | 2 +- example/doc/sinks_async_bounded.cpp | 2 +- example/doc/sinks_async_ordering.cpp | 2 +- example/doc/sinks_debugger.cpp | 2 +- example/doc/sinks_file.cpp | 2 +- example/doc/sinks_multifile.cpp | 4 +- example/doc/sinks_ostream.cpp | 2 +- example/doc/sinks_simple_event_log.cpp | 2 +- example/doc/sinks_sync.cpp | 2 +- example/doc/sinks_syslog.cpp | 4 +- example/doc/sinks_unlocked.cpp | 2 +- example/doc/sinks_xml_file.cpp | 2 +- example/doc/sources_net_connection.cpp | 4 +- example/doc/sources_net_connection_chan.cpp | 4 +- .../sources_net_connection_dynamic_chan.cpp | 4 +- example/doc/sources_severity.cpp | 4 +- example/doc/sources_severity_channel.cpp | 4 +- example/doc/tutorial_attributes.cpp | 4 +- example/doc/tutorial_file_manual.cpp | 4 +- example/doc/tutorial_filtering.cpp | 4 +- example/doc/tutorial_fmt_custom.cpp | 4 +- example/doc/tutorial_fmt_format.cpp | 4 +- example/doc/tutorial_fmt_stream_manual.cpp | 4 +- example/event_log/main.cpp | 2 +- example/multiple_files/main.cpp | 2 +- example/multiple_threads/main.cpp | 2 +- example/native_syslog/main.cpp | 2 +- example/rotating_file/main.cpp | 2 +- .../settings_file_formatter_factory/main.cpp | 2 +- example/syslog/main.cpp | 2 +- include/boost/log/attributes/attribute.hpp | 6 +- .../boost/log/attributes/attribute_value.hpp | 3 +- .../log/attributes/current_thread_id.hpp | 2 +- .../boost/log/attributes/mutable_constant.hpp | 3 +- include/boost/log/core/core.hpp | 2 +- include/boost/log/core/record_view.hpp | 2 +- include/boost/log/detail/locking_ptr.hpp | 200 +++++++++--------- include/boost/log/sinks/async_frontend.hpp | 6 +- include/boost/log/sinks/sync_frontend.hpp | 4 +- include/boost/log/sinks/syslog_backend.hpp | 1 - include/boost/log/sinks/text_file_backend.hpp | 2 +- .../boost/log/sinks/text_ostream_backend.hpp | 2 +- include/boost/log/sinks/unlocked_frontend.hpp | 4 +- include/boost/log/sources/basic_logger.hpp | 1 - .../log/sources/global_logger_storage.hpp | 4 +- .../boost/log/sources/severity_feature.hpp | 2 +- .../log/utility/intrusive_ref_counter.hpp | 98 +-------- include/boost/log/utility/setup/console.hpp | 4 +- include/boost/log/utility/setup/file.hpp | 4 +- .../boost/log/utility/setup/filter_parser.hpp | 4 +- .../log/utility/setup/formatter_parser.hpp | 4 +- .../boost/log/utility/setup/from_settings.hpp | 2 +- .../type_dispatch/dynamic_type_dispatcher.hpp | 4 +- src/attribute_name.cpp | 4 +- src/core.cpp | 6 +- src/default_attribute_names.cpp | 2 +- src/init_from_settings.cpp | 2 +- src/named_scope.cpp | 5 +- src/syslog_backend.cpp | 6 +- src/text_file_backend.cpp | 2 +- test/performance/record_emission.cpp | 4 +- test/run/core.cpp | 2 +- test/run/util_stp_filter_parser.cpp | 2 +- test/run/util_stp_formatter_parser.cpp | 2 +- 79 files changed, 225 insertions(+), 307 deletions(-) diff --git a/doc/changelog.qbk b/doc/changelog.qbk index b522cd5..88c2bc4 100644 --- a/doc/changelog.qbk +++ b/doc/changelog.qbk @@ -14,7 +14,8 @@ [*General changes:] * Added a new configuration macro `BOOST_LOG_WITHOUT_DEFAULT_FACTORIES`. By defining this macro the user can disable compilation of the default filter and formatter factories used by settings parsers. This can substantially reduce binary sizes while still retaining support for settings parsers. Note that when this macro is defined the user will have to register _all_ attributes in the library. -* Rewritten some of the parsers to reduce the compiled binary size. +* Rewritten some of the parsers to reduce the compiled binary size. The rewritten parsers are more robust in detecting ambiguous and incorrect input. +* The header `boost/log/utility/intrusive_ref_counter.hpp` is deprecated and will be removed in future releases. Its contents have been moved to __boost_smart_ptr__, as `boost/smart_ptr/intrusive_ref_counter.hpp`. [*Bug fixes:] diff --git a/example/advanced_usage/main.cpp b/example/advanced_usage/main.cpp index a30427a..2861cca 100644 --- a/example/advanced_usage/main.cpp +++ b/example/advanced_usage/main.cpp @@ -21,7 +21,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/example/async_log/main.cpp b/example/async_log/main.cpp index 51c53b1..ec2340d 100644 --- a/example/async_log/main.cpp +++ b/example/async_log/main.cpp @@ -21,7 +21,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/example/bounded_async_log/main.cpp b/example/bounded_async_log/main.cpp index 5fef573..34eaf3c 100644 --- a/example/bounded_async_log/main.cpp +++ b/example/bounded_async_log/main.cpp @@ -21,7 +21,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/example/doc/core_core_manual.cpp b/example/doc/core_core_manual.cpp index 53d78d1..6b49bbe 100644 --- a/example/doc/core_core_manual.cpp +++ b/example/doc/core_core_manual.cpp @@ -5,7 +5,7 @@ * http://www.boost.org/LICENSE_1_0.txt) */ -#include +#include #include #include #include diff --git a/example/doc/exception_handling.cpp b/example/doc/exception_handling.cpp index d3ff4a1..6db86e6 100644 --- a/example/doc/exception_handling.cpp +++ b/example/doc/exception_handling.cpp @@ -10,8 +10,8 @@ #include #include #include -#include -#include +#include +#include #include #include #include diff --git a/example/doc/expressions_has_attr_stat_accum.cpp b/example/doc/expressions_has_attr_stat_accum.cpp index 6ada84a..164b895 100644 --- a/example/doc/expressions_has_attr_stat_accum.cpp +++ b/example/doc/expressions_has_attr_stat_accum.cpp @@ -10,8 +10,8 @@ #include #include #include -#include -#include +#include +#include #include #include #include diff --git a/example/doc/extension_app_launcher.cpp b/example/doc/extension_app_launcher.cpp index 35c8978..c7eba67 100644 --- a/example/doc/extension_app_launcher.cpp +++ b/example/doc/extension_app_launcher.cpp @@ -9,7 +9,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/example/doc/extension_filter_parser.cpp b/example/doc/extension_filter_parser.cpp index 7cc41fb..e60d8ad 100644 --- a/example/doc/extension_filter_parser.cpp +++ b/example/doc/extension_filter_parser.cpp @@ -8,8 +8,8 @@ #include #include #include -#include -#include +#include +#include #include #include #include diff --git a/example/doc/extension_filter_parser_custom_rel.cpp b/example/doc/extension_filter_parser_custom_rel.cpp index d384414..068b308 100644 --- a/example/doc/extension_filter_parser_custom_rel.cpp +++ b/example/doc/extension_filter_parser_custom_rel.cpp @@ -8,8 +8,8 @@ #include #include #include -#include -#include +#include +#include #include #include #include diff --git a/example/doc/extension_formatter_parser.cpp b/example/doc/extension_formatter_parser.cpp index c96f8fc..7d65602 100644 --- a/example/doc/extension_formatter_parser.cpp +++ b/example/doc/extension_formatter_parser.cpp @@ -8,8 +8,8 @@ #include #include #include -#include -#include +#include +#include #include #include #include diff --git a/example/doc/extension_record_tagger.cpp b/example/doc/extension_record_tagger.cpp index 73244e5..e7454ee 100644 --- a/example/doc/extension_record_tagger.cpp +++ b/example/doc/extension_record_tagger.cpp @@ -8,8 +8,8 @@ #include #include #include -#include -#include +#include +#include #include #include #include diff --git a/example/doc/extension_stat_collector.cpp b/example/doc/extension_stat_collector.cpp index a9dc791..e100a50 100644 --- a/example/doc/extension_stat_collector.cpp +++ b/example/doc/extension_stat_collector.cpp @@ -9,7 +9,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/example/doc/extension_stat_collector_settings.cpp b/example/doc/extension_stat_collector_settings.cpp index be30418..f9da850 100644 --- a/example/doc/extension_stat_collector_settings.cpp +++ b/example/doc/extension_stat_collector_settings.cpp @@ -10,8 +10,8 @@ #include #include #include -#include -#include +#include +#include #include #include #include diff --git a/example/doc/extension_system_uptime_attr.cpp b/example/doc/extension_system_uptime_attr.cpp index 3121c30..eaff03b 100644 --- a/example/doc/extension_system_uptime_attr.cpp +++ b/example/doc/extension_system_uptime_attr.cpp @@ -9,7 +9,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/example/doc/sinks_async.cpp b/example/doc/sinks_async.cpp index c17f770..e950c35 100644 --- a/example/doc/sinks_async.cpp +++ b/example/doc/sinks_async.cpp @@ -8,7 +8,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/example/doc/sinks_async_bounded.cpp b/example/doc/sinks_async_bounded.cpp index 06abba8..6901b93 100644 --- a/example/doc/sinks_async_bounded.cpp +++ b/example/doc/sinks_async_bounded.cpp @@ -8,7 +8,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/example/doc/sinks_async_ordering.cpp b/example/doc/sinks_async_ordering.cpp index 57ad90a..a1c82b6 100644 --- a/example/doc/sinks_async_ordering.cpp +++ b/example/doc/sinks_async_ordering.cpp @@ -9,7 +9,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/example/doc/sinks_debugger.cpp b/example/doc/sinks_debugger.cpp index 4912656..39bf757 100644 --- a/example/doc/sinks_debugger.cpp +++ b/example/doc/sinks_debugger.cpp @@ -5,7 +5,7 @@ * http://www.boost.org/LICENSE_1_0.txt) */ -#include +#include #include #include #include diff --git a/example/doc/sinks_file.cpp b/example/doc/sinks_file.cpp index ef497e2..11a4231 100644 --- a/example/doc/sinks_file.cpp +++ b/example/doc/sinks_file.cpp @@ -8,7 +8,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/example/doc/sinks_multifile.cpp b/example/doc/sinks_multifile.cpp index 7b0d77f..b44f09f 100644 --- a/example/doc/sinks_multifile.cpp +++ b/example/doc/sinks_multifile.cpp @@ -7,8 +7,8 @@ #include #include -#include -#include +#include +#include #include #include #include diff --git a/example/doc/sinks_ostream.cpp b/example/doc/sinks_ostream.cpp index e5faeb9..62dba40 100644 --- a/example/doc/sinks_ostream.cpp +++ b/example/doc/sinks_ostream.cpp @@ -8,7 +8,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/example/doc/sinks_simple_event_log.cpp b/example/doc/sinks_simple_event_log.cpp index bdd62d4..a0de7f2 100644 --- a/example/doc/sinks_simple_event_log.cpp +++ b/example/doc/sinks_simple_event_log.cpp @@ -8,7 +8,7 @@ #include #include #include -#include +#include #include #include diff --git a/example/doc/sinks_sync.cpp b/example/doc/sinks_sync.cpp index 9eeac7f..ee146a1 100644 --- a/example/doc/sinks_sync.cpp +++ b/example/doc/sinks_sync.cpp @@ -8,7 +8,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/example/doc/sinks_syslog.cpp b/example/doc/sinks_syslog.cpp index b4cf7ee..ba0f4d9 100644 --- a/example/doc/sinks_syslog.cpp +++ b/example/doc/sinks_syslog.cpp @@ -6,8 +6,8 @@ */ #include -#include -#include +#include +#include #include #include #include diff --git a/example/doc/sinks_unlocked.cpp b/example/doc/sinks_unlocked.cpp index 57f06bf..72007ee 100644 --- a/example/doc/sinks_unlocked.cpp +++ b/example/doc/sinks_unlocked.cpp @@ -7,7 +7,7 @@ #include #include -#include +#include #include #include #include diff --git a/example/doc/sinks_xml_file.cpp b/example/doc/sinks_xml_file.cpp index f585e72..7cde266 100644 --- a/example/doc/sinks_xml_file.cpp +++ b/example/doc/sinks_xml_file.cpp @@ -8,7 +8,7 @@ #include #include #include -#include +#include #include #include diff --git a/example/doc/sources_net_connection.cpp b/example/doc/sources_net_connection.cpp index b43c4d9..5a59690 100644 --- a/example/doc/sources_net_connection.cpp +++ b/example/doc/sources_net_connection.cpp @@ -8,8 +8,8 @@ #include #include #include -#include -#include +#include +#include #include #include #include diff --git a/example/doc/sources_net_connection_chan.cpp b/example/doc/sources_net_connection_chan.cpp index 9978f95..49afa9a 100644 --- a/example/doc/sources_net_connection_chan.cpp +++ b/example/doc/sources_net_connection_chan.cpp @@ -8,8 +8,8 @@ #include #include #include -#include -#include +#include +#include #include #include #include diff --git a/example/doc/sources_net_connection_dynamic_chan.cpp b/example/doc/sources_net_connection_dynamic_chan.cpp index 9adcd13..a9c5ab0 100644 --- a/example/doc/sources_net_connection_dynamic_chan.cpp +++ b/example/doc/sources_net_connection_dynamic_chan.cpp @@ -8,8 +8,8 @@ #include #include #include -#include -#include +#include +#include #include #include #include diff --git a/example/doc/sources_severity.cpp b/example/doc/sources_severity.cpp index c1f88db..8528fb5 100644 --- a/example/doc/sources_severity.cpp +++ b/example/doc/sources_severity.cpp @@ -10,8 +10,8 @@ #include #include #include -#include -#include +#include +#include #include #include #include diff --git a/example/doc/sources_severity_channel.cpp b/example/doc/sources_severity_channel.cpp index d50f25f..52dd388 100644 --- a/example/doc/sources_severity_channel.cpp +++ b/example/doc/sources_severity_channel.cpp @@ -9,8 +9,8 @@ #include #include #include -#include -#include +#include +#include #include #include #include diff --git a/example/doc/tutorial_attributes.cpp b/example/doc/tutorial_attributes.cpp index 7d5905c..8e5d95f 100644 --- a/example/doc/tutorial_attributes.cpp +++ b/example/doc/tutorial_attributes.cpp @@ -10,8 +10,8 @@ #include #include #include -#include -#include +#include +#include #include #include #include diff --git a/example/doc/tutorial_file_manual.cpp b/example/doc/tutorial_file_manual.cpp index 6226457..5df0c21 100644 --- a/example/doc/tutorial_file_manual.cpp +++ b/example/doc/tutorial_file_manual.cpp @@ -6,8 +6,8 @@ */ #include -#include -#include +#include +#include #include #include #include diff --git a/example/doc/tutorial_filtering.cpp b/example/doc/tutorial_filtering.cpp index 3826687..7a19d18 100644 --- a/example/doc/tutorial_filtering.cpp +++ b/example/doc/tutorial_filtering.cpp @@ -10,8 +10,8 @@ #include #include #include -#include -#include +#include +#include #include #include #include diff --git a/example/doc/tutorial_fmt_custom.cpp b/example/doc/tutorial_fmt_custom.cpp index df5bbe5..9a2624a 100644 --- a/example/doc/tutorial_fmt_custom.cpp +++ b/example/doc/tutorial_fmt_custom.cpp @@ -7,8 +7,8 @@ #include #include -#include -#include +#include +#include #include #include #include diff --git a/example/doc/tutorial_fmt_format.cpp b/example/doc/tutorial_fmt_format.cpp index d2c98aa..36f903c 100644 --- a/example/doc/tutorial_fmt_format.cpp +++ b/example/doc/tutorial_fmt_format.cpp @@ -6,8 +6,8 @@ */ #include -#include -#include +#include +#include #include #include #include diff --git a/example/doc/tutorial_fmt_stream_manual.cpp b/example/doc/tutorial_fmt_stream_manual.cpp index 210ad27..217aba9 100644 --- a/example/doc/tutorial_fmt_stream_manual.cpp +++ b/example/doc/tutorial_fmt_stream_manual.cpp @@ -7,8 +7,8 @@ #include #include -#include -#include +#include +#include #include #include #include diff --git a/example/event_log/main.cpp b/example/event_log/main.cpp index b393753..f354549 100644 --- a/example/event_log/main.cpp +++ b/example/event_log/main.cpp @@ -21,7 +21,7 @@ #include #include #include -#include +#include #include #include diff --git a/example/multiple_files/main.cpp b/example/multiple_files/main.cpp index af1e72e..4859309 100644 --- a/example/multiple_files/main.cpp +++ b/example/multiple_files/main.cpp @@ -21,7 +21,7 @@ #include #include #include -#include +#include #include #include diff --git a/example/multiple_threads/main.cpp b/example/multiple_threads/main.cpp index dfc4273..db0c5d9 100644 --- a/example/multiple_threads/main.cpp +++ b/example/multiple_threads/main.cpp @@ -23,7 +23,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/example/native_syslog/main.cpp b/example/native_syslog/main.cpp index 4540b1d..4974968 100644 --- a/example/native_syslog/main.cpp +++ b/example/native_syslog/main.cpp @@ -20,7 +20,7 @@ #include #include #include -#include +#include #include #include diff --git a/example/rotating_file/main.cpp b/example/rotating_file/main.cpp index 1312dc2..651e399 100644 --- a/example/rotating_file/main.cpp +++ b/example/rotating_file/main.cpp @@ -20,7 +20,7 @@ #include #include #include -#include +#include #include #include diff --git a/example/settings_file_formatter_factory/main.cpp b/example/settings_file_formatter_factory/main.cpp index 3f2d9d1..2b23923 100644 --- a/example/settings_file_formatter_factory/main.cpp +++ b/example/settings_file_formatter_factory/main.cpp @@ -21,7 +21,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/example/syslog/main.cpp b/example/syslog/main.cpp index 980b880..54d4cf6 100644 --- a/example/syslog/main.cpp +++ b/example/syslog/main.cpp @@ -20,7 +20,7 @@ #include #include #include -#include +#include #include #include diff --git a/include/boost/log/attributes/attribute.hpp b/include/boost/log/attributes/attribute.hpp index 905739f..4a2c311 100644 --- a/include/boost/log/attributes/attribute.hpp +++ b/include/boost/log/attributes/attribute.hpp @@ -16,10 +16,10 @@ #define BOOST_LOG_ATTRIBUTES_ATTRIBUTE_HPP_INCLUDED_ #include -#include #include +#include +#include #include -#include #include #include @@ -67,7 +67,7 @@ public: * All attributes must derive their implementation from this class. */ struct BOOST_LOG_NO_VTABLE BOOST_SYMBOL_VISIBLE impl : - public intrusive_ref_counter + public boost::intrusive_ref_counter { /*! * \return The actual attribute value. It shall not return empty values (exceptions diff --git a/include/boost/log/attributes/attribute_value.hpp b/include/boost/log/attributes/attribute_value.hpp index 81e1a26..4cb8555 100644 --- a/include/boost/log/attributes/attribute_value.hpp +++ b/include/boost/log/attributes/attribute_value.hpp @@ -15,11 +15,10 @@ #ifndef BOOST_LOG_ATTRIBUTE_VALUE_HPP_INCLUDED_ #define BOOST_LOG_ATTRIBUTE_VALUE_HPP_INCLUDED_ -#include #include +#include #include #include -#include #include #include #include diff --git a/include/boost/log/attributes/current_thread_id.hpp b/include/boost/log/attributes/current_thread_id.hpp index c16a507..ad2ea6f 100644 --- a/include/boost/log/attributes/current_thread_id.hpp +++ b/include/boost/log/attributes/current_thread_id.hpp @@ -25,7 +25,7 @@ #error Boost.Log: The current_thread_id attribute is only available in multithreaded builds #endif -#include +#include #include #include #include diff --git a/include/boost/log/attributes/mutable_constant.hpp b/include/boost/log/attributes/mutable_constant.hpp index bba5637..b80e7c3 100644 --- a/include/boost/log/attributes/mutable_constant.hpp +++ b/include/boost/log/attributes/mutable_constant.hpp @@ -15,9 +15,8 @@ #ifndef BOOST_LOG_ATTRIBUTES_MUTABLE_CONSTANT_HPP_INCLUDED_ #define BOOST_LOG_ATTRIBUTES_MUTABLE_CONSTANT_HPP_INCLUDED_ -#include -#include #include +#include #include #include #include diff --git a/include/boost/log/core/core.hpp b/include/boost/log/core/core.hpp index 9840627..a614465 100644 --- a/include/boost/log/core/core.hpp +++ b/include/boost/log/core/core.hpp @@ -16,7 +16,7 @@ #define BOOST_LOG_CORE_CORE_HPP_INCLUDED_ #include -#include +#include #include #include #include diff --git a/include/boost/log/core/record_view.hpp b/include/boost/log/core/record_view.hpp index 1edb99c..6c78388 100644 --- a/include/boost/log/core/record_view.hpp +++ b/include/boost/log/core/record_view.hpp @@ -15,7 +15,7 @@ #ifndef BOOST_LOG_CORE_RECORD_VIEW_HPP_INCLUDED_ #define BOOST_LOG_CORE_RECORD_VIEW_HPP_INCLUDED_ -#include +#include #include #include #include diff --git a/include/boost/log/detail/locking_ptr.hpp b/include/boost/log/detail/locking_ptr.hpp index 62a9c6f..d086303 100644 --- a/include/boost/log/detail/locking_ptr.hpp +++ b/include/boost/log/detail/locking_ptr.hpp @@ -16,7 +16,7 @@ #ifndef BOOST_LOG_DETAIL_LOCKING_PTR_HPP_INCLUDED_ #define BOOST_LOG_DETAIL_LOCKING_PTR_HPP_INCLUDED_ -#include +#include #include #include #include @@ -31,120 +31,120 @@ BOOST_LOG_OPEN_NAMESPACE namespace aux { - //! Shared lock object to support locking_ptr - struct BOOST_LOG_NO_VTABLE locking_ptr_counter_base +//! Shared lock object to support locking_ptr +struct BOOST_LOG_NO_VTABLE locking_ptr_counter_base +{ + unsigned int m_RefCounter; + + locking_ptr_counter_base() : m_RefCounter(0) { - unsigned int m_RefCounter; + } - locking_ptr_counter_base() : m_RefCounter(0) - { - } + virtual ~locking_ptr_counter_base() {} + virtual void lock() = 0; + virtual bool try_lock() = 0; + virtual void unlock() = 0; - virtual ~locking_ptr_counter_base() {} - virtual void lock() = 0; - virtual bool try_lock() = 0; - virtual void unlock() = 0; +private: + locking_ptr_counter_base(locking_ptr_counter_base const&); + locking_ptr_counter_base& operator= (locking_ptr_counter_base const&); +}; - private: - locking_ptr_counter_base(locking_ptr_counter_base const&); - locking_ptr_counter_base& operator= (locking_ptr_counter_base const&); - }; +struct try_lock_tag {}; +BOOST_CONSTEXPR_OR_CONST try_lock_tag try_lock = {}; - struct try_lock_tag {}; - const try_lock_tag try_lock = {}; +//! A pointer type that locks the backend until it's destroyed +template< typename T > +class locking_ptr +{ +public: + //! Pointed type + typedef T element_type; - //! A pointer type that locks the backend until it's destroyed - template< typename T > - class locking_ptr +private: + //! The pointer to the backend + shared_ptr< element_type > m_pElement; + //! Reference to the shared lock control object + locking_ptr_counter_base* m_pLock; + +public: + //! Constructor + locking_ptr(shared_ptr< element_type > const& p, locking_ptr_counter_base& l) + : m_pElement(p), m_pLock(&l) { - public: - //! Pointed type - typedef T element_type; - - private: - //! The pointer to the backend - shared_ptr< element_type > m_pElement; - //! Reference to the shared lock control object - locking_ptr_counter_base* m_pLock; - - public: - //! Constructor - locking_ptr(shared_ptr< element_type > const& p, locking_ptr_counter_base& l) - : m_pElement(p), m_pLock(&l) + if (m_pLock->m_RefCounter == 0) + m_pLock->lock(); + ++m_pLock->m_RefCounter; + } + //! Constructor + locking_ptr(shared_ptr< element_type > const& p, locking_ptr_counter_base& l, try_lock_tag const&) + : m_pElement(p), m_pLock(&l) + { + if (m_pLock->m_RefCounter > 0 || m_pLock->try_lock()) { - if (m_pLock->m_RefCounter == 0) - m_pLock->lock(); ++m_pLock->m_RefCounter; } - //! Constructor - locking_ptr(shared_ptr< element_type > const& p, locking_ptr_counter_base& l, try_lock_tag const&) - : m_pElement(p), m_pLock(&l) + else { - if (m_pLock->m_RefCounter > 0 || m_pLock->try_lock()) - { - ++m_pLock->m_RefCounter; - } - else - { - m_pElement.reset(); - m_pLock = NULL; - } + m_pElement.reset(); + m_pLock = NULL; } - //! Copy constructor - locking_ptr(locking_ptr const& that) : m_pElement(that.m_pElement), m_pLock(that.m_pLock) - { - if (m_pLock) - ++m_pLock->m_RefCounter; - } - //! Destructor - ~locking_ptr() - { - if (m_pLock && --m_pLock->m_RefCounter == 0) - m_pLock->unlock(); - } - - //! Assignment - locking_ptr& operator= (locking_ptr that) - { - this->swap(that); - return *this; - } - - //! Indirection - element_type* operator-> () const { return m_pElement.get(); } - //! Dereferencing - element_type& operator* () const { return *m_pElement; } - - //! Accessor to the raw pointer - element_type* get() const { return m_pElement.get(); } - - //! Checks for null pointer - BOOST_LOG_EXPLICIT_OPERATOR_BOOL() - //! Checks for null pointer - bool operator! () const { return !m_pElement; } - - //! Swaps two pointers - void swap(locking_ptr& that) - { - m_pElement.swap(that.m_pElement); - register locking_ptr_counter_base* p = m_pLock; - m_pLock = that.m_pLock; - that.m_pLock = p; - } - }; - - //! Free raw pointer getter to assist generic programming - template< typename T > - inline T* get_pointer(locking_ptr< T > const& p) - { - return p.get(); } - //! Free swap operation - template< typename T > - inline void swap(locking_ptr< T >& left, locking_ptr< T >& right) + //! Copy constructor + locking_ptr(locking_ptr const& that) : m_pElement(that.m_pElement), m_pLock(that.m_pLock) { - left.swap(right); + if (m_pLock) + ++m_pLock->m_RefCounter; } + //! Destructor + ~locking_ptr() + { + if (m_pLock && --m_pLock->m_RefCounter == 0) + m_pLock->unlock(); + } + + //! Assignment + locking_ptr& operator= (locking_ptr that) + { + this->swap(that); + return *this; + } + + //! Indirection + element_type* operator-> () const { return m_pElement.get(); } + //! Dereferencing + element_type& operator* () const { return *m_pElement; } + + //! Accessor to the raw pointer + element_type* get() const { return m_pElement.get(); } + + //! Checks for null pointer + BOOST_LOG_EXPLICIT_OPERATOR_BOOL() + //! Checks for null pointer + bool operator! () const { return !m_pElement; } + + //! Swaps two pointers + void swap(locking_ptr& that) + { + m_pElement.swap(that.m_pElement); + register locking_ptr_counter_base* p = m_pLock; + m_pLock = that.m_pLock; + that.m_pLock = p; + } +}; + +//! Free raw pointer getter to assist generic programming +template< typename T > +inline T* get_pointer(locking_ptr< T > const& p) +{ + return p.get(); +} +//! Free swap operation +template< typename T > +inline void swap(locking_ptr< T >& left, locking_ptr< T >& right) +{ + left.swap(right); +} } // namespace aux diff --git a/include/boost/log/sinks/async_frontend.hpp b/include/boost/log/sinks/async_frontend.hpp index c64092b..7dab9b4 100644 --- a/include/boost/log/sinks/async_frontend.hpp +++ b/include/boost/log/sinks/async_frontend.hpp @@ -15,9 +15,6 @@ #ifndef BOOST_LOG_SINKS_ASYNC_FRONTEND_HPP_INCLUDED_ #define BOOST_LOG_SINKS_ASYNC_FRONTEND_HPP_INCLUDED_ -#include -#include -#include #include #ifdef BOOST_HAS_PRAGMA_ONCE @@ -29,6 +26,9 @@ #endif #include +#include +#include +#include #include #include #include diff --git a/include/boost/log/sinks/sync_frontend.hpp b/include/boost/log/sinks/sync_frontend.hpp index 3f70ba3..4dcef08 100644 --- a/include/boost/log/sinks/sync_frontend.hpp +++ b/include/boost/log/sinks/sync_frontend.hpp @@ -25,9 +25,9 @@ #error Boost.Log: Synchronous sink frontend is only supported in multithreaded environment #endif -#include -#include #include +#include +#include #include #include #include diff --git a/include/boost/log/sinks/syslog_backend.hpp b/include/boost/log/sinks/syslog_backend.hpp index 8778ca3..83a3ce3 100644 --- a/include/boost/log/sinks/syslog_backend.hpp +++ b/include/boost/log/sinks/syslog_backend.hpp @@ -24,7 +24,6 @@ #ifndef BOOST_LOG_WITHOUT_SYSLOG #include -#include #include #include #include diff --git a/include/boost/log/sinks/text_file_backend.hpp b/include/boost/log/sinks/text_file_backend.hpp index 9250f6f..63123e4 100644 --- a/include/boost/log/sinks/text_file_backend.hpp +++ b/include/boost/log/sinks/text_file_backend.hpp @@ -20,7 +20,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/include/boost/log/sinks/text_ostream_backend.hpp b/include/boost/log/sinks/text_ostream_backend.hpp index 8298109..3813d1b 100644 --- a/include/boost/log/sinks/text_ostream_backend.hpp +++ b/include/boost/log/sinks/text_ostream_backend.hpp @@ -16,7 +16,7 @@ #define BOOST_LOG_SINKS_TEXT_OSTREAM_BACKEND_HPP_INCLUDED_ #include -#include +#include #include #include #include diff --git a/include/boost/log/sinks/unlocked_frontend.hpp b/include/boost/log/sinks/unlocked_frontend.hpp index 0646092..53022f7 100644 --- a/include/boost/log/sinks/unlocked_frontend.hpp +++ b/include/boost/log/sinks/unlocked_frontend.hpp @@ -15,9 +15,9 @@ #ifndef BOOST_LOG_SINKS_UNLOCKED_FRONTEND_HPP_INCLUDED_ #define BOOST_LOG_SINKS_UNLOCKED_FRONTEND_HPP_INCLUDED_ -#include -#include #include +#include +#include #include #include #include diff --git a/include/boost/log/sources/basic_logger.hpp b/include/boost/log/sources/basic_logger.hpp index 86faa10..b653bb8 100644 --- a/include/boost/log/sources/basic_logger.hpp +++ b/include/boost/log/sources/basic_logger.hpp @@ -20,7 +20,6 @@ #include #include #include -#include #include #include #include diff --git a/include/boost/log/sources/global_logger_storage.hpp b/include/boost/log/sources/global_logger_storage.hpp index eff4815..d1cea91 100644 --- a/include/boost/log/sources/global_logger_storage.hpp +++ b/include/boost/log/sources/global_logger_storage.hpp @@ -17,8 +17,8 @@ #include #include -#include -#include +#include +#include #include #include #include diff --git a/include/boost/log/sources/severity_feature.hpp b/include/boost/log/sources/severity_feature.hpp index f846fd3..bec3837 100644 --- a/include/boost/log/sources/severity_feature.hpp +++ b/include/boost/log/sources/severity_feature.hpp @@ -16,8 +16,8 @@ #define BOOST_LOG_SOURCES_SEVERITY_FEATURE_HPP_INCLUDED_ #include -#include #include +#include #include #include #include diff --git a/include/boost/log/utility/intrusive_ref_counter.hpp b/include/boost/log/utility/intrusive_ref_counter.hpp index 006fff2..02cef0e 100644 --- a/include/boost/log/utility/intrusive_ref_counter.hpp +++ b/include/boost/log/utility/intrusive_ref_counter.hpp @@ -9,109 +9,33 @@ * \author Andrey Semashev * \date 12.03.2009 * - * This header contains a reference counter class for \c intrusive_ptr. + * This header is deprecated, use boost/smart_ptr/intrusive_ref_counter.hpp instead. The header is left for + * backward compatibility and will be removed in future versions. */ #ifndef BOOST_LOG_UTILITY_INTRUSIVE_REF_COUNTER_HPP_INCLUDED_ #define BOOST_LOG_UTILITY_INTRUSIVE_REF_COUNTER_HPP_INCLUDED_ -#include +#include +#include #include -#ifndef BOOST_LOG_NO_THREADS -#include -#endif // BOOST_LOG_NO_THREADS #include #ifdef BOOST_HAS_PRAGMA_ONCE #pragma once #endif +#if defined(__GNUC__) +#pragma message "Boost.Log: This header is deprecated, use boost/smart_ptr/intrusive_ref_counter.hpp instead." +#elif defined(_MSC_VER) +#pragma message("Boost.Log: This header is deprecated, use boost/smart_ptr/intrusive_ref_counter.hpp instead.") +#endif + namespace boost { BOOST_LOG_OPEN_NAMESPACE -class intrusive_ref_counter; - -#ifndef BOOST_LOG_DOXYGEN_PASS -void intrusive_ptr_add_ref(const intrusive_ref_counter* p); -void intrusive_ptr_release(const intrusive_ref_counter* p); -#endif // BOOST_LOG_DOXYGEN_PASS - -/*! - * \brief A reference counter base class - * - * This base class can be used with user-defined classes to add support - * for \c intrusive_ptr. The class contains a thread-safe reference counter - * and a virtual destructor, which makes the derived class polymorphic. - * Upon releasing the last \c intrusive_ptr referencing the object - * derived from the \c intrusive_ref_counter class, operator \c delete - * is automatically called on the pointer to the object. - */ -class intrusive_ref_counter -{ -private: - //! Reference counter -#ifndef BOOST_LOG_NO_THREADS - mutable boost::detail::atomic_count m_RefCounter; -#else - mutable unsigned long m_RefCounter; -#endif // BOOST_LOG_NO_THREADS - -public: - /*! - * Default constructor - * - * \post use_count() == 0 - */ - intrusive_ref_counter() : m_RefCounter(0) - { - } - /*! - * Copy constructor - * - * \post use_count() == 0 - */ - intrusive_ref_counter(intrusive_ref_counter const&) : m_RefCounter(0) - { - } - - /*! - * Virtual destructor - */ - virtual ~intrusive_ref_counter() {} - - /*! - * Assignment - * - * \post The reference counter is not modified after assignment - */ - intrusive_ref_counter& operator= (intrusive_ref_counter const&) { return *this; } - - /*! - * \return The reference counter - */ - unsigned long use_count() const - { - return static_cast< unsigned long >(static_cast< long >(m_RefCounter)); - } - -#ifndef BOOST_LOG_DOXYGEN_PASS - friend void intrusive_ptr_add_ref(const intrusive_ref_counter* p); - friend void intrusive_ptr_release(const intrusive_ref_counter* p); -#endif // BOOST_LOG_DOXYGEN_PASS -}; - -#ifndef BOOST_LOG_DOXYGEN_PASS -inline void intrusive_ptr_add_ref(const intrusive_ref_counter* p) -{ - ++p->m_RefCounter; -} -inline void intrusive_ptr_release(const intrusive_ref_counter* p) -{ - if (--p->m_RefCounter == 0) - delete p; -} -#endif // BOOST_LOG_DOXYGEN_PASS +using boost::intrusive_ref_counter; BOOST_LOG_CLOSE_NAMESPACE // namespace log diff --git a/include/boost/log/utility/setup/console.hpp b/include/boost/log/utility/setup/console.hpp index ee8d219..17787ab 100644 --- a/include/boost/log/utility/setup/console.hpp +++ b/include/boost/log/utility/setup/console.hpp @@ -16,8 +16,8 @@ #define BOOST_LOG_UTILITY_SETUP_CONSOLE_HPP_INCLUDED_ #include -#include -#include +#include +#include #include #include #ifndef BOOST_LOG_NO_THREADS diff --git a/include/boost/log/utility/setup/file.hpp b/include/boost/log/utility/setup/file.hpp index 6ecb70a..cec5cd8 100644 --- a/include/boost/log/utility/setup/file.hpp +++ b/include/boost/log/utility/setup/file.hpp @@ -15,8 +15,8 @@ #ifndef BOOST_LOG_UTILITY_SETUP_FILE_HPP_INCLUDED_ #define BOOST_LOG_UTILITY_SETUP_FILE_HPP_INCLUDED_ -#include -#include +#include +#include #include // for is_named_argument #include #include diff --git a/include/boost/log/utility/setup/filter_parser.hpp b/include/boost/log/utility/setup/filter_parser.hpp index 6c9d1c4..090dfd2 100644 --- a/include/boost/log/utility/setup/filter_parser.hpp +++ b/include/boost/log/utility/setup/filter_parser.hpp @@ -16,9 +16,9 @@ #define BOOST_LOG_UTILITY_SETUP_FILTER_PARSER_HPP_INCLUDED_ #include -#include -#include #include +#include +#include #include #include #include diff --git a/include/boost/log/utility/setup/formatter_parser.hpp b/include/boost/log/utility/setup/formatter_parser.hpp index 66a1561..b6d8fe3 100644 --- a/include/boost/log/utility/setup/formatter_parser.hpp +++ b/include/boost/log/utility/setup/formatter_parser.hpp @@ -19,8 +19,8 @@ #include #include #include -#include -#include +#include +#include #include #include #include diff --git a/include/boost/log/utility/setup/from_settings.hpp b/include/boost/log/utility/setup/from_settings.hpp index 83f91a4..1aaa8e1 100644 --- a/include/boost/log/utility/setup/from_settings.hpp +++ b/include/boost/log/utility/setup/from_settings.hpp @@ -17,7 +17,7 @@ #define BOOST_LOG_UTILITY_SETUP_FROM_SETTINGS_HPP_INCLUDED_ #include -#include +#include #include #include #include diff --git a/include/boost/log/utility/type_dispatch/dynamic_type_dispatcher.hpp b/include/boost/log/utility/type_dispatch/dynamic_type_dispatcher.hpp index 312760f..422b221 100644 --- a/include/boost/log/utility/type_dispatch/dynamic_type_dispatcher.hpp +++ b/include/boost/log/utility/type_dispatch/dynamic_type_dispatcher.hpp @@ -19,8 +19,8 @@ #include #include #include -#include -#include +#include +#include #include #include #include diff --git a/src/attribute_name.cpp b/src/attribute_name.cpp index 9a4ab16..52965a8 100644 --- a/src/attribute_name.cpp +++ b/src/attribute_name.cpp @@ -18,9 +18,9 @@ #include #include #include -#include -#include #include +#include +#include #include #include #include diff --git a/src/core.cpp b/src/core.cpp index be2ab2a..c4c5cc4 100644 --- a/src/core.cpp +++ b/src/core.cpp @@ -20,9 +20,9 @@ #include #include #include -#include -#include -#include +#include +#include +#include #include #include #include diff --git a/src/default_attribute_names.cpp b/src/default_attribute_names.cpp index 6fb1170..9bb364c 100644 --- a/src/default_attribute_names.cpp +++ b/src/default_attribute_names.cpp @@ -13,7 +13,7 @@ * at http://www.boost.org/doc/libs/release/libs/log/doc/html/index.html. */ -#include +#include #include #include #include diff --git a/src/init_from_settings.cpp b/src/init_from_settings.cpp index f4492f2..e8f04a4 100644 --- a/src/init_from_settings.cpp +++ b/src/init_from_settings.cpp @@ -29,7 +29,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/src/named_scope.cpp b/src/named_scope.cpp index 0941183..34daeaa 100644 --- a/src/named_scope.cpp +++ b/src/named_scope.cpp @@ -15,10 +15,7 @@ #include #include -#include -#include -#include -#include +#include #include #include #include diff --git a/src/syslog_backend.cpp b/src/syslog_backend.cpp index 489191b..79931ae 100644 --- a/src/syslog_backend.cpp +++ b/src/syslog_backend.cpp @@ -22,9 +22,9 @@ #include #include #include -#include -#include -#include +#include +#include +#include #include #if !defined(BOOST_LOG_NO_ASIO) #include diff --git a/src/text_file_backend.cpp b/src/text_file_backend.cpp index 3d025dc..534d7ec 100644 --- a/src/text_file_backend.cpp +++ b/src/text_file_backend.cpp @@ -31,7 +31,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/test/performance/record_emission.cpp b/test/performance/record_emission.cpp index 46229cd..f27e720 100644 --- a/test/performance/record_emission.cpp +++ b/test/performance/record_emission.cpp @@ -21,8 +21,8 @@ #include #include #include -#include -#include +#include +#include #include #include #include diff --git a/test/run/core.cpp b/test/run/core.cpp index 983fb12..ec2e52d 100644 --- a/test/run/core.cpp +++ b/test/run/core.cpp @@ -17,7 +17,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/test/run/util_stp_filter_parser.cpp b/test/run/util_stp_filter_parser.cpp index 46d5d82..59170f1 100644 --- a/test/run/util_stp_filter_parser.cpp +++ b/test/run/util_stp_filter_parser.cpp @@ -20,7 +20,7 @@ #if !defined(BOOST_LOG_WITHOUT_SETTINGS_PARSERS) && !defined(BOOST_LOG_WITHOUT_DEFAULT_FACTORIES) -#include +#include #include #include #include diff --git a/test/run/util_stp_formatter_parser.cpp b/test/run/util_stp_formatter_parser.cpp index 352d312..ed66373 100644 --- a/test/run/util_stp_formatter_parser.cpp +++ b/test/run/util_stp_formatter_parser.cpp @@ -20,7 +20,7 @@ #if !defined(BOOST_LOG_WITHOUT_SETTINGS_PARSERS) && !defined(BOOST_LOG_WITHOUT_DEFAULT_FACTORIES) -#include +#include #include #include #include