Module Dtools.Conf


module Conf: sig .. end
Configuration management module.

type link = string 
Type for links between keys
type path = link list 
Type for paths between keys
type ut = < comments : string list; descr : string; kind : string option;
path : path -> ut;
plug : link -> ut -> unit;
routes : ut -> path list;
subs : link list; ut : ut >

Type for untyped keys (or keys with unknown type)
type 'a t = < comments : string list; descr : string; get : 'a; get_d : 'a option;
kind : string option; path : path -> ut;
plug : link -> ut -> unit;
routes : ut -> path list; set : 'a -> unit;
set_d : 'a option -> unit; subs : link list;
ut : ut >

Type for 'a keys
type links = (link * ut) list 
A set of connections to others keys
exception Undefined of ut
Raised on access to an undefined key (without default value)
exception Invalid of string
Raised when an invalid link has been specified
exception Unbound of ut * string
Raised when a specified link does not exist
exception Bound of ut * string
Raised when a specified link already exist
exception Mismatch of ut
Raised on access to a key with a mismatching type
exception Cyclic of ut * ut
Raised on cyclic plug
exception Wrong_Conf of string * string
Raised when bad configuration assignations are encountered
exception File_Wrong_Conf of string * int * string
Raised when bad configuration assignations are encountered inside configuration files
type 'a builder = ?d:'a ->
?p:(ut -> unit) ->
?l:links -> ?comments:string list -> string -> 'a t
Receipt to build a 'a key
val unit : unit builder
val int : int builder
val float : float builder
val bool : bool builder
val string : string builder
val list : string list builder
Some key builders
val void : ?p:(ut -> unit) ->
?l:links -> ?comments:string list -> string -> ut
A structural key builder
val as_unit : ut -> unit t
val as_int : ut -> int t
val as_float : ut -> float t
val as_bool : ut -> bool t
val as_string : ut -> string t
val as_list : ut -> string list t
Casts to specificaly typed keys. Raises Mismatch on mismatching cast.
val path_of_string : string -> path
Convert a dot separated string to a path
val string_of_path : path -> string
Convert a path to a dot separated string
val descr : ?prefix:path -> ut -> string
Generate a description table of a (sub)key
val dump : ?prefix:path -> ut -> string
Dump the configuration table for a (sub)key
val conf_set : ut -> string -> unit
Add a value to the configuration keys, according to the given correctly formated string: "type key :value" Raises Wrong_Conf in badly formated cases.
val conf_file : ut -> string -> unit
Read configuration values from the file associated with the given filename. Raises File_Wrong_Conf with filename line and and error message in case of a bad configuration file.
val args : ut -> (string list * Arg.spec * string) list
A set of command line options to be used with the Arg module.