X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2FDEVEL%2Focaml-http%2Fhttp_daemon.mli;fp=helm%2FDEVEL%2Focaml-http%2Fhttp_daemon.mli;h=0000000000000000000000000000000000000000;hb=c7514aaa249a96c5fdd39b1123fbdb38d92f20b6;hp=3cc176854560b8c38a5f9be638aae2dd2cf4be11;hpb=1c7fb836e2af4f2f3d18afd0396701f2094265ff;p=helm.git diff --git a/helm/DEVEL/ocaml-http/http_daemon.mli b/helm/DEVEL/ocaml-http/http_daemon.mli deleted file mode 100644 index 3cc176854..000000000 --- a/helm/DEVEL/ocaml-http/http_daemon.mli +++ /dev/null @@ -1,158 +0,0 @@ - -(* - OCaml HTTP - do it yourself (fully OCaml) HTTP daemon - - Copyright (C) <2002> Stefano Zacchiroli - - This program 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. - - This program 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 this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*) - -(** Main OCaml HTTP module. - Here you can find two set of functions: - - functions which let you start an HTTP Daemon (start* functions) - - facility functions which let you sent responses back to clients *) - - (** send a CRLF sequence on the given output channel, this is mandatory after - the last header was sent and before start sending the response body *) -val send_CRLF: out_channel -> unit - - (** send response status line, version is the http version used in response, - either code or status must be given (not both, not none) which represent the - HTTP response code, outchan is the output channel to which send status line *) -val send_status_line: - ?version: Http_types.version -> ?code: int -> ?status: Http_types.status -> - out_channel -> - unit - - (** like send_status_line but additionally will also send "Date" and "Server" - standard headers *) -val send_basic_headers: - ?version: Http_types.version -> ?code: int -> ?status: Http_types.status -> - out_channel -> - unit - - (** send an HTTP header on outchan *) -val send_header: header: string -> value: string -> out_channel -> unit - - (** as send_header, but for a list of pairs *) -val send_headers: headers:(string * string) list -> out_channel -> unit - -(* - (** send a file through an out_channel, file can be passed as an in_channel - (if 'file' is given) or as a file name (if 'name' is given) *) -val send_file: ?name:string -> ?file:in_channel -> out_channel -> unit -*) - (** send a file through an out_channel *) -val send_file: src:Http_types.file_source -> out_channel -> unit - - (** high level response function, respond on outchan sending: basic headers - (including Content-Length computed using 'body' argument), headers probided - via 'headers' argument, body given via 'body' argument. Default response - status is 200, default response HTTP version is Http_common.http_version *) -val respond: - ?body:string -> ?headers:(string * string) list -> - ?version:Http_types.version -> ?code:int -> ?status:Http_types.status -> - out_channel -> - unit - - (** send a 404 (not found) HTTP response *) -val respond_not_found: - url:string -> ?version: Http_types.version -> out_channel -> unit - - (** send a 403 (forbidden) HTTP response *) -val respond_forbidden: - url:string -> ?version: Http_types.version -> out_channel -> unit - - (** send a "redirection" class response, optional body argument contains data - that will be displayed in the body of the response, default response status is - 302 (moved permanently), only redirection status are accepted by this - function, other values will raise Failure *) -val respond_redirect: - location:string -> ?body:string -> - ?version: Http_types.version -> - ?code: int -> ?status: Http_types.redirection_status -> - out_channel -> - unit - - (** send an "error" response (i.e. 400 <= status < 600), optional body - argument as per send_redirect, default response status is 400 (bad request), - only error status are accepted by this function, other values will - raise Failure *) -val respond_error: - ?body:string -> - ?version: Http_types.version -> - ?code: int -> ?status: Http_types.error_status -> - out_channel -> - unit - - (** tipical static pages http daemon behaviour, if requested url is a file, - return it, it it is a directory return a directory listing of it *) -val respond_file: - fname:string -> ?version: Http_types.version -> out_channel -> unit - - (** respond using a prebuilt Http_types.response object *) -val respond_with: Http_types.response -> out_channel -> unit - - (** create an HTTP daemon listening on 'addr':'port' (defaults are - addr:"0.0.0.0" and port:80), callback is the user supplied function which - receive as a first parameter the path required by the the HTTP client as a - string, and a list of pair representing parameters passed - via GET. The last argument of the callback is an output_channel connected to - the HTTP client to which the user can write directly. 'timeout' parameter sets - a timeout for each request processed by the daemon, if it's set to None, - daemon waits forever for completed requests (use with care!), default is 5 - minute. 'mode' parameter has 3 possible values: `Single means that all request - are handled by the same process, `Fork means that each request is handled by a - separate process, `Thread means that each request is handled by a separate - thread, default is `Fork; 'root' (mnemonic "document root") is the directory - where the daemon chdir before starting up, default is current working - directory *) -val start: - ?addr: string -> ?port: int -> - ?timeout: int option -> ?mode: Http_types.daemon_mode -> ?root: string -> - (string -> (string * string) list -> out_channel -> unit) -> - unit - - (** identical to 'start' above but callback receive two arguments, the second - one is an out_channel as per 'start', but the secondo one is a Request.request - object *) -val start': - ?addr: string -> ?port: int -> - ?timeout: int option -> ?mode: Http_types.daemon_mode -> ?root: string -> - (Http_types.request -> out_channel -> unit) -> - unit - - (** Object oriented interface to HTTP daemons. - @param addr address on which daemon will listen for connections - @param port port which daemon will bind - see {! Http_types.daemon} *) -class daemon: - ?addr: string -> ?port: int -> - unit -> - Http_types.daemon - - (** Trivial static pages HTTP daemon. - Daemons created using this module will serve directory indexes and files found - starting from the working directory *) -module Trivial : - sig - (** callback function, exposed if you like to use it as a basis to define - a more powerful daemon *) - val callback : string -> 'a -> out_channel -> unit - - (** start the "trivial" HTTP daemon *) - val start : ?addr:string -> ?port:int -> unit -> unit - end -