diff options
Diffstat (limited to 'boost/test/utils/runtime/file/config_file_iterator.hpp')
-rw-r--r-- | boost/test/utils/runtime/file/config_file_iterator.hpp | 166 |
1 files changed, 0 insertions, 166 deletions
diff --git a/boost/test/utils/runtime/file/config_file_iterator.hpp b/boost/test/utils/runtime/file/config_file_iterator.hpp deleted file mode 100644 index 6c6273fca1..0000000000 --- a/boost/test/utils/runtime/file/config_file_iterator.hpp +++ /dev/null @@ -1,166 +0,0 @@ -// (C) Copyright Gennadiy Rozental 2005-2014. -// Use, modification, and distribution are subject to 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) - -// See http://www.boost.org/libs/test for the library home page. -// -// File : $RCSfile$ -// -// Version : $Revision$ -// -// Description : flexible configuration file iterator definition -// *************************************************************************** - -#ifndef BOOST_TEST_UTILS_RUNTIME_FILE_CONFIG_FILE_ITERATOR_HPP -#define BOOST_TEST_UTILS_RUNTIME_FILE_CONFIG_FILE_ITERATOR_HPP - -// Boost.Runtime.Parameter -#include <boost/test/utils/runtime/config.hpp> - -#include <boost/test/utils/runtime/fwd.hpp> - -// Boost.Test -#include <boost/test/utils/iterator/input_iterator_facade.hpp> -#include <boost/test/utils/named_params.hpp> - -// Boost -#include <boost/shared_ptr.hpp> -#include <boost/function.hpp> - -namespace boost { - -namespace BOOST_TEST_UTILS_RUNTIME_PARAM_NAMESPACE { - -namespace file { - -// Public typedef -typedef std::pair<dstring,long> location; - -// ************************************************************************** // -// ************** modifiers ************** // -// ************************************************************************** // - -namespace cfg_detail { - struct path_separators_t; - struct line_delimeter_t; - struct sl_comment_delimeter_t; - struct command_delimeter_t; - struct line_beak_t; - struct macro_ref_begin_t; - struct macro_ref_end_t; - struct include_kw_t; - struct define_kw_t; - struct undef_kw_t; - struct ifdef_kw_t; - struct ifndef_kw_t; - struct else_kw_t; - struct endif_kw_t; - - struct buffer_size_t; - - struct trim_leading_spaces_t; - struct trim_trailing_spaces_t; - struct skip_empty_lines_t; - struct detect_missing_macro_t; -} // namespace cfg_detail - -namespace { - -nfp::typed_keyword<cstring,cfg_detail::path_separators_t> path_separators; -nfp::typed_keyword<char_type ,cfg_detail::line_delimeter_t> line_delimeter; -nfp::typed_keyword<cstring,cfg_detail::sl_comment_delimeter_t> single_line_comment_delimeter; -nfp::typed_keyword<cstring,cfg_detail::command_delimeter_t> command_delimeter; -nfp::typed_keyword<cstring,cfg_detail::line_beak_t> line_beak; -nfp::typed_keyword<cstring,cfg_detail::macro_ref_begin_t> macro_ref_begin; -nfp::typed_keyword<cstring,cfg_detail::macro_ref_end_t> macro_ref_end; -nfp::typed_keyword<cstring,cfg_detail::include_kw_t> include_kw; -nfp::typed_keyword<cstring,cfg_detail::define_kw_t> define_kw; -nfp::typed_keyword<cstring,cfg_detail::undef_kw_t> undef_kw; -nfp::typed_keyword<cstring,cfg_detail::ifdef_kw_t> ifdef_kw; -nfp::typed_keyword<cstring,cfg_detail::ifndef_kw_t> ifndef_kw; -nfp::typed_keyword<cstring,cfg_detail::else_kw_t> else_kw; -nfp::typed_keyword<cstring,cfg_detail::endif_kw_t> endif_kw; - -nfp::typed_keyword<std::size_t,cfg_detail::buffer_size_t> buffer_size; - -nfp::typed_keyword<bool,cfg_detail::trim_leading_spaces_t> trim_leading_spaces; -nfp::typed_keyword<bool,cfg_detail::trim_trailing_spaces_t> trim_trailing_spaces; -nfp::typed_keyword<bool,cfg_detail::skip_empty_lines_t> skip_empty_lines; -nfp::typed_keyword<bool,cfg_detail::detect_missing_macro_t> detect_missing_macro; - -} // local namespace - -// ************************************************************************** // -// ************** runtime::file::config_file_iterator ************** // -// ************************************************************************** // - -class config_file_iterator : public unit_test::input_iterator_facade<config_file_iterator,cstring,cstring> { - typedef unit_test::input_iterator_facade<config_file_iterator,cstring,cstring> base; -public: - // Public typedefs - typedef boost::function<void (cstring)> command_handler; - - // Constructors - config_file_iterator() {} - explicit config_file_iterator( cstring file_name ) - { - construct(); - load( file_name ); - } - template<typename Modifiers> - config_file_iterator( cstring file_name, Modifiers const& m ) - { - construct(); - m.apply_to( *this ); - load( file_name ); - } - config_file_iterator( config_file_iterator const& rhs ) - : base( rhs ) - , m_pimpl( rhs.m_pimpl ) - { - rhs.m_valid = false; - } - - void operator=( config_file_iterator const& rhs ) - { - if( this == &rhs ) - return; - - (base&)(*this) = rhs; - m_pimpl = rhs.m_pimpl; - rhs.m_valid = false; - } // Assignment - - - // Access methods - location const& curr_location(); - void register_command_handler( cstring command_kw, command_handler const& ); - - // Parameters setters - void set_parameter( rtti::id_t, cstring ); - void set_parameter( rtti::id_t, bool ); - void set_parameter( rtti::id_t, char_type ); - void set_parameter( rtti::id_t, std::size_t ); - -private: - friend class unit_test::input_iterator_core_access; - - void construct(); - void load( cstring file_name ); - - // increment implementation - bool get(); - - // Data members - struct Impl; - shared_ptr<Impl> m_pimpl; -}; - -} // namespace file - -} // namespace BOOST_TEST_UTILS_RUNTIME_PARAM_NAMESPACE - -} // namespace boost - -#endif // BOOST_TEST_UTILS_RUNTIME_FILE_CONFIG_FILE_ITERATOR_HPP |