Boost logo

Boost :

Subject: Re: [boost] Library for configuration file parsing
From: Giorgio Zoppi (giorgio.zoppi_at_[hidden])
Date: 2010-12-02 08:08:44


2010/11/26 Denis Shevchenko <for.dshevchenko_at_[hidden]>:
> On 26.11.2010 13:04, Vladimir Prus wrote:
>>
>> Denis Shevchenko wrote:
>>
>>> Hi all!
>>>
>>> Is there any interest in a library for configuration file parsing?
>>>
>>> I know there is a good library Program_options, but it supports (asit is
>>> written in the documentation) "parsing of simple INI-like configuration
>>> files". If all you need for configure your programs is INI-like files -
>>> use Program_options and forget about this letter. But if you want to use
>>> a more complex configuration files, you may be interested in my library,
>>> Configurator.
>>
>> You might want to clarify what are "more complex configuration files".
>> Also, note that the property_tree library has support for some flavour(s)
>> of configuration files, so you might want to compare your solution with
>> it.
>>
>> - Volodya
>>
>>
>> _______________________________________________
>> Unsubscribe&  other changes:
>> http://lists.boost.org/mailman/listinfo.cgi/boost
>
> Hi, Volodya!
>
> This is example of more complex configuration file:
> --------------------------------------------------------------------------------------
> /*
>  * more_complex.conf
>  */
>
> DbName       : my_database
> DbHost        : localhost
> DbPort         : 100
> DbUser         : some_user
> DbPassword  : some_password
>
> <Server>
>    Host           : 12.45.46.15               // IP semantic may be check.
>    Port           :  1080                          // Value must be unsigned
> integer number.
>    Admin/*this is comment with unnecessary info
>    asf*/istrator  : admin_at_[hidden]             // e-mail semantic may be
> check.
>
>    StorePath     :  /some/path                            // path semantic
> may be check.
>
> <Internal>
>        Logfile              : /some/path/to/logfile     // path semantic may
> be check.
>        MaxLogFileSize  : 10 MB                           // size semantic
> may be check, result in bytes.
> </Internal>
>
>    ReconnectPeriod : 10 m  // time-period semantic may be check, result in
> seconds.
> </Server>
>
> <Plugins>
>    plugins  : a_plug   b_plug
>    plugins  : c_plug
>    plugins  : d_plug
>    plugins  : e_plug
> </Plugins>
> ----------------------------------------------------------------------------------------
>
> I know boost::property_tree, this is very good library, but (imho) it is
> designed specifically to advanced work with XML (though not only with him).
> In other words, primaryarea of this library is notwork with configuration
> files(imho). I could not find in the documentation (or in examples) of
> boost::property_tree features such as option's default value or necessary.
>
> My library designed exactly for work with configuration files and not for
> anything more, so it usageis very simple for THIS task.

Why don't use boost::spirit?

Cheers,
Giorgio.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk