diff options
author | Remko Tronçon <git@el-tramo.be> | 2011-03-11 20:22:35 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2011-03-11 22:22:04 (GMT) |
commit | 59aa5d7e29ca142ae324ad97e6a5f0353d1a6b89 (patch) | |
tree | e450b95ff4c0ba7f770723402a2634773f1a0451 /3rdParty/Boost/src/boost/property_tree/ptree_fwd.hpp | |
parent | 3ff52013d810f94b6095e93f550f58133e2df239 (diff) | |
download | swift-contrib-59aa5d7e29ca142ae324ad97e6a5f0353d1a6b89.zip swift-contrib-59aa5d7e29ca142ae324ad97e6a5f0353d1a6b89.tar.bz2 |
Store JID->Avatar mappings.
Resolves: #653
Diffstat (limited to '3rdParty/Boost/src/boost/property_tree/ptree_fwd.hpp')
-rw-r--r-- | 3rdParty/Boost/src/boost/property_tree/ptree_fwd.hpp | 143 |
1 files changed, 143 insertions, 0 deletions
diff --git a/3rdParty/Boost/src/boost/property_tree/ptree_fwd.hpp b/3rdParty/Boost/src/boost/property_tree/ptree_fwd.hpp new file mode 100644 index 0000000..fe36741 --- /dev/null +++ b/3rdParty/Boost/src/boost/property_tree/ptree_fwd.hpp @@ -0,0 +1,143 @@ +// ---------------------------------------------------------------------------- +// Copyright (C) 2002-2006 Marcin Kalicinski +// Copyright (C) 2009 Sebastian Redl +// +// 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_PTREE_FWD_HPP_INCLUDED +#define BOOST_PROPERTY_TREE_PTREE_FWD_HPP_INCLUDED + +#include <boost/config.hpp> +#include <boost/optional/optional_fwd.hpp> +#include <boost/throw_exception.hpp> +#include <functional> // for std::less +#include <memory> // for std::allocator +#include <string> + +namespace boost { namespace property_tree +{ + namespace detail { + template <typename T> struct less_nocase; + } + + // Classes + + template < class Key, class Data, class KeyCompare = std::less<Key> > + class basic_ptree; + + template <typename T> + struct id_translator; + + template <typename String, typename Translator> + class string_path; + + // Texas-style concepts for documentation only. +#if 0 + concept PropertyTreePath<class Path> { + // The key type for which this path works. + typename key_type; + // Return the key that the first segment of the path names. + // Split the head off the state. + key_type Path::reduce(); + + // Return true if the path is empty. + bool Path::empty() const; + + // Return true if the path contains a single element. + bool Path::single() const; + + // Dump as a std::string, for exception messages. + std::string Path::dump() const; + } + concept PropertyTreeKey<class Key> { + PropertyTreePath path; + requires SameType<Key, PropertyTreePath<path>::key_type>; + } + concept PropertyTreeTranslator<class Tr> { + typename internal_type; + typename external_type; + + boost::optional<external_type> Tr::get_value(internal_type); + boost::optional<internal_type> Tr::put_value(external_type); + } +#endif + /// If you want to use a custom key type, specialize this struct for it + /// and give it a 'type' typedef that specifies your path type. The path + /// type must conform to the Path concept described in the documentation. + /// This is already specialized for std::basic_string. + template <typename Key> + struct path_of; + + /// Specialize this struct to specify a default translator between the data + /// in a tree whose data_type is Internal, and the external data_type + /// specified in a get_value, get, put_value or put operation. + /// This is already specialized for Internal being std::basic_string. + template <typename Internal, typename External> + struct translator_between; + + class ptree_error; + class ptree_bad_data; + class ptree_bad_path; + + // Typedefs + + /** Implements a path using a std::string as the key. */ + typedef string_path<std::string, id_translator<std::string> > path; + + /** + * A property tree with std::string for key and data, and default + * comparison. + */ + typedef basic_ptree<std::string, std::string> ptree; + + /** + * A property tree with std::string for key and data, and case-insensitive + * comparison. + */ + typedef basic_ptree<std::string, std::string, + detail::less_nocase<std::string> > + iptree; + +#ifndef BOOST_NO_STD_WSTRING + /** Implements a path using a std::wstring as the key. */ + typedef string_path<std::wstring, id_translator<std::wstring> > wpath; + + /** + * A property tree with std::wstring for key and data, and default + * comparison. + * @note The type only exists if the platform supports @c wchar_t. + */ + typedef basic_ptree<std::wstring, std::wstring> wptree; + + /** + * A property tree with std::wstring for key and data, and case-insensitive + * comparison. + * @note The type only exists if the platform supports @c wchar_t. + */ + typedef basic_ptree<std::wstring, std::wstring, + detail::less_nocase<std::wstring> > + wiptree; +#endif + + // Free functions + + /** + * Swap two property tree instances. + */ + template<class K, class D, class C> + void swap(basic_ptree<K, D, C> &pt1, + basic_ptree<K, D, C> &pt2); + +} } + + +#if !defined(BOOST_PROPERTY_TREE_DOXYGEN_INVOKED) + // Throwing macro to avoid no return warnings portably +# define BOOST_PROPERTY_TREE_THROW(e) BOOST_THROW_EXCEPTION(e) +#endif + +#endif |