summaryrefslogtreecommitdiff
path: root/libs/property_tree/doc
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@baserock.org>2015-04-08 03:09:47 +0000
committer <>2015-05-05 14:37:32 +0000
commitf2541bb90af059680aa7036f315f052175999355 (patch)
treea5b214744b256f07e1dc2bd7273035a7808c659f /libs/property_tree/doc
parented232fdd34968697a68783b3195b1da4226915b5 (diff)
downloadboost-tarball-master.tar.gz
Imported from /home/lorry/working-area/delta_boost-tarball/boost_1_58_0.tar.bz2.HEADboost_1_58_0master
Diffstat (limited to 'libs/property_tree/doc')
-rw-r--r--libs/property_tree/doc/Jamfile.v29
-rw-r--r--libs/property_tree/doc/intro.qbk3
-rw-r--r--libs/property_tree/doc/property_tree.qbk16
-rw-r--r--libs/property_tree/doc/tutorial.qbk91
4 files changed, 28 insertions, 91 deletions
diff --git a/libs/property_tree/doc/Jamfile.v2 b/libs/property_tree/doc/Jamfile.v2
index 4f62fc9df..96601b722 100644
--- a/libs/property_tree/doc/Jamfile.v2
+++ b/libs/property_tree/doc/Jamfile.v2
@@ -12,6 +12,7 @@
import doxygen ;
import quickbook ;
+
doxygen autodoc
:
[ glob ../../../boost/property_tree/*.hpp ]
@@ -42,11 +43,5 @@ boostbook standalone
<xsl:param>toc.section.depth=2
<xsl:param>chunk.section.depth=3
<dependency>autodoc
- <format>pdf:<xsl:param>boost.url.prefix=http://www.boost.org/doc/libs/release/libs/functional/hash/doc/html
+ <format>pdf:<xsl:param>boost.url.prefix=http://www.boost.org/doc/libs/release/libs/property_tree/doc/html
;
-
-#install ../
-# : ../../../boost.png
-# ../../../next.png
-# ../../../prev.png
-# ;
diff --git a/libs/property_tree/doc/intro.qbk b/libs/property_tree/doc/intro.qbk
index 30236970c..354e0c044 100644
--- a/libs/property_tree/doc/intro.qbk
+++ b/libs/property_tree/doc/intro.qbk
@@ -28,7 +28,8 @@ Conceptually, then, a node can be thought of as the following structure:
list< pair<key_type, ptree> > children; // ordered list of named children
};
-Both key_type and data_type are configurable, but will usually be std::string.
+Both key_type and data_type are configurable to some extent, but will usually be
+std::string or std::wstring, and the parsers only work with this kind of tree.
Many software projects develop a similar tool at some point of their lifetime,
and property tree originated the same way. We hope the library can save many
diff --git a/libs/property_tree/doc/property_tree.qbk b/libs/property_tree/doc/property_tree.qbk
index fef18f749..83f6a6bc8 100644
--- a/libs/property_tree/doc/property_tree.qbk
+++ b/libs/property_tree/doc/property_tree.qbk
@@ -7,15 +7,16 @@
/]
[library Boost.PropertyTree
- [quickbook 1.4]
- [copyright 2008 Marcin Kalicinski]
+ [quickbook 1.6]
+ [copyright 2008-2010 Marcin Kalicinski]
+ [copyright 2010-2013 Sebastian Redl]
[purpose Property Tree library]
[license
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])
]
- [authors [Kalicinski, Marcin]]
+ [authors [Kalicinski, Marcin], [Redl, Sebastian]]
[id property_tree]
[dirname property_tree]
[category container]
@@ -29,19 +30,20 @@
[def __ptree_data_type__ [classref boost::property_tree::basic_ptree::data_type data_type]]
[def __ptree_iterator__ [classref boost::property_tree::basic_ptree::iterator iterator]]
[def __ptree_const_iterator__ [classref boost::property_tree::basic_ptree::const_iterator const_iterator]]
+[def __ptree_assoc_iterator__ [classref boost::property_tree::basic_ptree::assoc_iterator assoc_iterator]]
+[def __ptree_const_assoc_iterator__ [classref boost::property_tree::basic_ptree::const_assoc_iterator const_assoc_iterator]]
[def __path__ [classref boost::property_tree::string_path path]]
[def __ptree_error__ [classref boost::property_tree::ptree_error ptree_error]]
[def __ptree_bad_data__ [classref boost::property_tree::ptree_bad_data ptree_bad_data]]
[def __ptree_bad_path__ [classref boost::property_tree::ptree_bad_path ptree_bad_path]]
[/ members]
+[def __ptree_data__ [memberref boost::property_tree::basic_ptree::data data]]
+[def __ptree_find__ [memberref boost::property_tree::basic_ptree::find find]]
[def __ptree_insert__ [memberref boost::property_tree::basic_ptree::insert insert]]
+[def __ptree_push_front__ [memberref boost::property_tree::basic_ptree::push_front push_front]]
[def __ptree_push_back__ [memberref boost::property_tree::basic_ptree::push_back push_back]]
-[def __ptree_find__ [memberref boost::property_tree::basic_ptree::find find]]
[def __ptree_erase__ [memberref boost::property_tree::basic_ptree::erase erase]]
-[def __ptree_find__ [memberref boost::property_tree::basic_ptree::find find]]
-[def __ptree_data__ [memberref boost::property_tree::basic_ptree::data data]]
-[def __ptree_push_front__ [memberref boost::property_tree::basic_ptree::push_front push_front]]
[def __ptree_sort__ [memberref boost::property_tree::basic_ptree::sort sort]]
[def __ptree_get__ [memberref boost::property_tree::basic_ptree::get get]]
[/ XXX: Don't know how to specify overloads]
diff --git a/libs/property_tree/doc/tutorial.qbk b/libs/property_tree/doc/tutorial.qbk
index 4d374c368..9ef3a922d 100644
--- a/libs/property_tree/doc/tutorial.qbk
+++ b/libs/property_tree/doc/tutorial.qbk
@@ -1,14 +1,16 @@
[/
/ Copyright (c) 2008 Marcin Kalicinski (kalita <at> poczta dot onet dot pl)
- / Copyright (c) 2009 Sebastian Redl (sebastian dot redl <at> getdesigned dot at)
+ / Copyright (c) 2009, 2013 Sebastian Redl (sebastian dot redl <at> getdesigned dot at)
/
/ 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)
/]
[section:tutorial Five Minute Tutorial]
+[import ../examples/debug_settings.cpp]
+
This tutorial uses XML. Note that the library is not specifically bound to XML,
and any other supported format (such as INI or JSON) could be used instead.
-XML was chosen because the author thinks that wide range of people is familiar
+XML was chosen because the author thinks that a wide range of people is familiar
with it.
Suppose we are writing a logging system for some application, and need to read
@@ -28,89 +30,26 @@ configuration looks like this:
]
It contains the log filename, a list of modules where logging is enabled, and
-the debug level value. To store the logging configuration in the program we
-created a debug_settings structure:
-
- struct debug_settings
- {
- std::string m_file; // log filename
- int m_level; // debug level
- std::set<string> m_modules; // modules where logging is enabled
- void load(const std::string &filename);
- void save(const std::string &filename);
- };
-
-All that needs to be done now is to write implementations of load() and save()
-member functions. Let's first deal with load(). It contains just 7 lines of
-code, although it does all the necessary things, including error reporting:
+the debug level value.
- #include <boost/property_tree/ptree.hpp>
- #include <boost/property_tree/xml_parser.hpp>
+First we need some includes:
- // Loads debug_settings structure from the specified XML file
- void debug_settings::load(const std::string &filename)
- {
- // Create an empty property tree object
- using boost::property_tree::__ptree__;
- __ptree__ pt;
+[debug_settings_includes]
- // Load the XML file into the property tree. If reading fails
- // (cannot open file, parse error), an exception is thrown.
- __read_xml__(filename, pt);
+To store the logging configuration in the program we create a debug_settings
+structure:
- // Get the filename and store it in the m_file variable.
- // Note that we construct the path to the value by separating
- // the individual keys with dots. If dots appear in the keys,
- // a path type with a different separator can be used.
- // If the debug.filename key is not found, an exception is thrown.
- m_file = pt.__ptree_get__<std::string>("debug.filename");
+[debug_settings_data]
- // Get the debug level and store it in the m_level variable.
- // This is another version of the get method: if the value is
- // not found, the default value (specified by the second
- // parameter) is returned instead. The type of the value
- // extracted is determined by the type of the second parameter,
- // so we can simply write get(...) instead of get<int>(...).
- m_level = pt.__ptree_get__("debug.level", 0);
+All that needs to be done now is to write implementations of load() and save()
+member functions. Let's first deal with load(). It contains just 7 lines of
+code, although it does all the necessary things, including error reporting:
- // Iterate over the debug.modules section and store all found
- // modules in the m_modules set. The get_child() function
- // returns a reference to the child at the specified path; if
- // there is no such child, it throws. Property tree iterators
- // are models of BidirectionalIterator.
- BOOST_FOREACH(__ptree__::__ptree_value_type__ &v,
- pt.__ptree_get_child__("debug.modules"))
- m_modules.__ptree_insert__(v.second.data());
- }
+[debug_settings_load]
Now the save() function. It is also 7 lines of code:
- // Saves the debug_settings structure to the specified XML file
- void debug_settings::save(const std::string &filename)
- {
- // Create an empty property tree object
- using boost::property_tree::__ptree__;
- __ptree__ pt;
-
- // Put log filename in property tree
- pt.__ptree_put__("debug.filename", m_file);
-
- // Put debug level in property tree
- pt.__ptree_put__("debug.level", m_level);
-
- // Iterate over the modules in the set and put them in the
- // property tree. Note that the put function places the new
- // key at the end of the list of keys. This is fine most of
- // the time. If you want to place an item at some other place
- // (i.e. at the front or somewhere in the middle), this can
- // be achieved using a combination of the insert and put_own
- // functions.
- BOOST_FOREACH(const std::string &name, m_modules)
- pt.__ptree_add__("debug.modules.module", name);
-
- // Write the property tree to the XML file.
- __write_xml__(filename, pt);
- }
+[debug_settings_save]
The full program [@boost:/libs/property_tree/examples/debug_settings.cpp debug_settings.cpp] is
included in the examples directory.