/Src/Dependencies/Boost/boost/property_tree/detail/xml_parser_writer_settings.hpp
http://hadesmem.googlecode.com/ · C++ Header · 62 lines · 42 code · 8 blank · 12 comment · 1 complexity · 7c365cd2b82026b0d3ab57138f7d3cfd MD5 · raw file
- // ----------------------------------------------------------------------------
- // 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 Ch>
- std::basic_string<Ch> widen(const char *text)
- {
- std::basic_string<Ch> result;
- while (*text)
- {
- result += Ch(*text);
- ++text;
- }
- return result;
- }
- //! Xml writer settings. The default settings lead to no pretty printing.
- template<class Ch>
- class xml_writer_settings
- {
- public:
- xml_writer_settings(Ch inchar = Ch(' '),
- typename std::basic_string<Ch>::size_type incount = 0,
- const std::basic_string<Ch> &enc = widen<Ch>("utf-8"))
- : indent_char(inchar)
- , indent_count(incount)
- , encoding(enc)
- {
- }
- Ch indent_char;
- typename std::basic_string<Ch>::size_type indent_count;
- std::basic_string<Ch> encoding;
- };
- template <class Ch>
- xml_writer_settings<Ch> xml_writer_make_settings(Ch indent_char = Ch(' '),
- typename std::basic_string<Ch>::size_type indent_count = 0,
- const std::basic_string<Ch> &encoding = widen<Ch>("utf-8"))
- {
- return xml_writer_settings<Ch>(indent_char, indent_count, encoding);
- }
- } } }
- #endif