= Configuration = {{{ #!cpp class IConfig { }; }}} Cette page permet de clarifier le but de addIndexing(). Les methodes set() et get() sont assez évidentes. Note, cette partie est optionelle, vu que tout le monde n'est pas forcé d'avoir le même fichier de configuration. == XML == {{{ #!xml }}} == ini == {{{ #!ini |zia|server|bind|0.0.0.0:80|addr=0.0.0.0:80 |zia|server|bind|127.0.0.1:8080|addr=127.0.0.1:8080 |zia|mimes|mime|.txt|type=text/plain |zia|mimes|mime|.js|type=text/javascript |zia|mimes|mime|.txt|ext=.txt |zia|mimes|mime|.js|ext=.js }}} == Utilisation == {{{ #!cpp IConfig *conf; conf->addIndexing("bind", "addr"); conf->addIndexing("mime", "ext"); std::list keys = conf->list("|zia|server|bind"); // keys = {"|zia|server|bind|0.0.0.0:80" "|zia|server|bind|127.0.0.1:8080" "|zia|server|bind|0.0.0.0:80|addr" "|zia|server|bind|127.0.0.1:8080|addr"} std::string value = conf->get("|zia|server|bind|0.0.0.0:80|addr").str() // key = {"0.0.0.0:80"} }}} == ConfigValue == Vous vous demandez sûrement pourquoi utiliser ConfigValue. Tout simplement parce que toutes les valeurs ne sont pas des chaînes, et que ConfigValue permet de faire la transition chaine -> int -> double -> bool qu'une seule fois (lors du chargement du fichier de configuration). Ainsi il est possible de faire ce genre de chose: {{{ #!cpp if (conf->get("|zia|server|use-http-1.1").boolean()) if (conf->get("|zia|server|max_client").integer() < current_connections) }}}