Proposal: property_tree rev.2 uploaded to vault and sandbox cvs

Hi All, Thanks to everybody who took time to look at the library, and especially to those who sent me feedback. Second revision of property_tree is now in the vault as property_tree_rev2.zip (it is now also in boost-sandbox cvs). Outline of the changes: - new methods get_o, get_own_o, get_child_o, which return boost::optional (suggested by Pavel Vozenilek) - added locales support to get and put methods (suggested by Martin) - pointer to bool removed from get_d (suggested by Daniel Wesslen) - ptree/wptree are now case sensitive by default. Added iptree/wiptree which are case-insensitive (suggested by Daniel Wesslen) - fixed multiple definitions bug when including some of the headers in more than one translation unit (spotted by Daniel Wesslen) - added more examples - updated docs and regressions to match current state of library (that was the biggest job actually :-) - hopefully kept the quality high Outstanding work: - XPath-like syntax for retrieving XML attributes (suggested by Caleb Epstein) - ptree mathematical relations (difference, union, intersection) - nice e.g. for tracking config file changes, or combining configs Original message (posted with revision 1): Property tree is a data structure - a tree of (key, value) pairs. It differs from its cousin, "usual" PropertyMap, because it is hierarchical, not linear. Thus, it is more like a minimalistic Document Object Model, but not bound to any specific file format. It can store contents of XML files, windows registry, INI files, even command line parameters. The library contains parsers for all these formats, and more. I tried to make the library as high quality as possible before posting here, so it contains a (hopefully) full documentation, and a comprehensive set of regression tests - more than 300 test cases. By any chance it is not a substitute for (upcoming?) boost XML library - it only supports a fairly narrow subset of XML, and focuses rather on being format-independent. For more curious, excerpt from the doc: Property tree is a recursive data structure that stores a single data string, and an ordered list of (key, value) pairs, where value is a property tree itself. It therefore forms a tree, hence the name. It is a versatile structure that can store in uniform way data coming from various sources, such as XML or INI files, as well as windows registry, program command line etc. Property tree interface is similar to the interface of a standard C++ container. It supports iterators, insertion, erasing, searching etc. One can think of it as a sort of Document Object Model, which is minimalistic, not bound to any specific file format, designed to be easy to use, and comes as Boost-compatible, headers only C++ library. Many software projects develop a similar tool at some point of their lifetime, and property tree long ago originated the same way. I hope the library can save many from reinventing the wheel. cheers, Marcin Kalicinski
participants (1)
-
Marcin Kalicinski