diff options
Diffstat (limited to '3rdParty/Boost/src/boost/property_tree/detail/xml_parser_writer_settings.hpp')
-rw-r--r-- | 3rdParty/Boost/src/boost/property_tree/detail/xml_parser_writer_settings.hpp | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/3rdParty/Boost/src/boost/property_tree/detail/xml_parser_writer_settings.hpp b/3rdParty/Boost/src/boost/property_tree/detail/xml_parser_writer_settings.hpp new file mode 100644 index 0000000..f22d85e --- /dev/null +++ b/3rdParty/Boost/src/boost/property_tree/detail/xml_parser_writer_settings.hpp @@ -0,0 +1,62 @@ +// ---------------------------------------------------------------------------- +// 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 |