12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- // ----------------------------------------------------------------------------
- // Copyright (C) 2002-2007 Marcin Kalicinski
- // Copyright (C) 2007 Alexey Baskakov
- //
- // 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)
- //
- // For more information, see www.boost.org
- // ----------------------------------------------------------------------------
- #ifndef BOOST_PROPERTY_TREE_DETAIL_XML_PARSER_WRITER_SETTINGS_HPP_INCLUDED
- #define BOOST_PROPERTY_TREE_DETAIL_XML_PARSER_WRITER_SETTINGS_HPP_INCLUDED
- #include <string>
- #include <boost/property_tree/detail/ptree_utils.hpp>
- namespace boost { namespace property_tree { namespace xml_parser
- {
- // Naively convert narrow string to another character type
- template<class Str>
- Str widen(const char *text)
- {
- typedef typename Str::value_type Ch;
- Str result;
- while (*text)
- {
- result += Ch(*text);
- ++text;
- }
- return result;
- }
- //! Xml writer settings. The default settings lead to no pretty printing.
- template<class Str>
- class xml_writer_settings
- {
- typedef typename Str::value_type Ch;
- public:
- xml_writer_settings(Ch inchar = Ch(' '),
- typename Str::size_type incount = 0,
- const Str &enc = widen<Str>("utf-8"))
- : indent_char(inchar)
- , indent_count(incount)
- , encoding(enc)
- {
- }
- Ch indent_char;
- typename Str::size_type indent_count;
- Str encoding;
- };
- template <class Str>
- xml_writer_settings<Str> xml_writer_make_settings(typename Str::value_type indent_char = (typename Str::value_type)(' '),
- typename Str::size_type indent_count = 0,
- const Str &encoding = widen<Str>("utf-8"))
- {
- return xml_writer_settings<Str>(indent_char, indent_count, encoding);
- }
- } } }
- #endif
|