(* netcgi_cgi.mli
Copyright (C) 2005-2006
Christophe Troestler
email: Christophe.Troestler@umh.ac.be
WWW: http://math.umh.ac.be/an/
This library is free software; see the file LICENSE for more information.
This library is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the file
LICENSE for more details.
*)
(** Classical CGI connector.
*
* CGI scripts have poor performance as they are entirely re-run for
* each request (so it is not possible to cache in the running program
* database connections for example). Still they are suitable for
* moderate frequented websites (especially because they run
* everywhere) and for development. *)
open Netcgi
val run :
?config:config ->
?output_type:output_type ->
?arg_store:arg_store ->
?exn_handler:exn_handler ->
(cgi -> unit) -> unit
(** [run f] executes [f cgi] for each cgi request. Contrarily to
the other connectors, CGI execute the whole code (even the one
outside [f]) each time the script is accessed. Therefore, one
cannot easily cache database connections,...
@param config Default: {!Netcgi.default_config}
@param output_type Default: [`Direct ""]
@param arg_store Default: [`Automatic] for all arguments.
@param exn_handler See {!Netcgi.exn_handler}. Default: delegate
all exceptions to the default handler. *)
val is_cgi : unit -> bool
(** [is_cgi] says whether the script is run in a CGI environment.
This allows for example to call the {!Netcgi_test} module if it
is not. *)