| [/ |
| / Copyright (c) 2008 Marcin Kalicinski (kalita <at> poczta dot onet dot pl) |
| / 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 a wide range of people is familiar |
| with it. |
| |
| Suppose we are writing a logging system for some application, and need to read |
| log configuration from a file when the program starts. The file with the log |
| configuration looks like this: |
| |
| [pre |
| <debug> |
| <filename>debug.log</filename> |
| <modules> |
| <module>Finance</module> |
| <module>Admin</module> |
| <module>HR</module> |
| </modules> |
| <level>2</level> |
| </debug> |
| ] |
| |
| It contains the log filename, a list of modules where logging is enabled, and |
| the debug level value. |
| |
| First we need some includes: |
| |
| [debug_settings_includes] |
| |
| To store the logging configuration in the program we create a debug_settings |
| structure: |
| |
| [debug_settings_data] |
| |
| 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: |
| |
| [debug_settings_load] |
| |
| Now the save() function. It is also 7 lines of code: |
| |
| [debug_settings_save] |
| |
| The full program [@boost:/libs/property_tree/examples/debug_settings.cpp debug_settings.cpp] is |
| included in the examples directory. |
| [endsect] [/tutorial] |