(*
* <COPYRIGHT>
* Copyright 2002 Joachim Schrod Network and Publication Consultance GmbH, Gerd Stolpmann
*
* <GPL>
* This file is part of WDialog.
*
* WDialog is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* WDialog 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
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with WDialog; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
* </>
*)
(* $Id: wd_run_fcgi.mli,v 1.1 2004-12-04 03:51:15 gremlin43820 Exp $
* ----------------------------------------------------------------------
*
*)
(** This module contains a customizable main program for application servers
using any Netcgi2 connector
*)
open Wd_types
open Netchannels
open Netcgi_fcgi
val create_request_handler :
?charset:Pxp_types.rep_encoding -> (* default: `Enc_iso88591 *)
?session_manager:session_manager_type -> (* defalt: instant_session_manager *)
?no_cache:bool -> (* default: true *)
?error_page:(out_obj_channel -> exn -> unit) -> (* default: a simple error page *)
?response_header:response_header -> (* default: see below *)
?reg:(universe_type -> unit) ->
uifile:string ->
unit -> (Netcgi.cgi_activation -> unit)
(** This function creates a request handler for Netcgi2-based application
* server. Use this function like in this example for FastCGI:
*
* Netcgi_fcgi.run
* (Wd_run.create_request_handler
* ~session_manager: (new memory_session_manager)
* ~charset:`Enc_utf8 ~reg ~uifile:"adder.ui" ())
*
* This main program creates a single threaded (single process) server
* which handles requests sequentially. Since fastcgi processes are managed
* by an application server, this is the only mode provided. The application
* server can then be configured to create process pools, cgi style
* servers, etc.. See the manual for your fastcgi application server for details.
*
* The application is accessible under the URL which you have configured
* for it in your web server.
*
* Call the function [create_request_handler] as follows:
*
* {[let req_hdl = create_request_handler ~reg ~uifile ()]}
*
* The argument [~reg] registers the dialog classes (like in Wd_run_cgi).
* The argument [~uifile] must be the absolute path of the UI definition.
* The suffix of this file must be ".ui" or ".ui.bin".
*
* @param charset determines the character set for the internal representation
* of strings and for the generated HTML pages. (Note that the parsed
* XML files can have character sets independent of this setting.)
* The default is [ISO-8859-1].
*
* @param no_cache If [true]: The CGI response contains header directives
* preventing the browser (and all caches between server and browser)
* from storing the response. This ensures that never a cache copy
* is taken, and for many browsers, the history is no longer usable
* (when hitting the "Back" button, the user only gets a message
* that the data is expired, but not the old page).
* The default is [true].
*
* @param error_page This function is called when an exception is caught.
* It can generate an error page by writing a nicely formatted
* message to the output channel. The default is a function that
* outputs a simple error page.
*
* @param response_header If set, this parameter is taken as the initial
* HTTP response header while processing the request. If omitted,
* the response header defaults to: The content type is text/html,
* the character set as determined by [charset], the caching header is
* set according to [no_cache].
*)
(* ======================================================================
* History:
*
* $Log: wd_run_fcgi.mli,v $
* Revision 1.1 2004-12-04 03:51:15 gremlin43820
* finially adding fastcgi support
*
* Revision 1.3 2003/03/21 14:23:44 stolpmann
* ocamldoc updated
*
* Revision 1.2 2003/01/04 21:55:25 stolpmann
* new record response_header
*
* Revision 1.1 2002/03/19 22:09:55 stolpmann
* Initial revision.
*
*)