]> matita.cs.unibo.it Git - helm.git/blob - helm/software/DEVEL/ocaml-http/http_misc.mli
initial qork for models
[helm.git] / helm / software / DEVEL / ocaml-http / http_misc.mli
1
2 (*
3   OCaml HTTP - do it yourself (fully OCaml) HTTP daemon
4
5   Copyright (C) <2002-2005> Stefano Zacchiroli <zack@cs.unibo.it>
6
7   This program is free software; you can redistribute it and/or modify
8   it under the terms of the GNU Library General Public License as
9   published by the Free Software Foundation, version 2.
10
11   This program is distributed in the hope that it will be useful,
12   but WITHOUT ANY WARRANTY; without even the implied warranty of
13   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14   GNU Library General Public License for more details.
15
16   You should have received a copy of the GNU Library General Public
17   License along with this program; if not, write to the Free Software
18   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
19   USA
20 *)
21
22 (** Helpers and other not better classified functions which should not be
23 exposed in the final API *)
24
25   (** @return the current date compliant to RFC 1123, which updates RFC 822
26   zone info are retrieved from UTC *)
27 val date_822: unit -> string
28
29   (** @return true if 'name' is a directory on the file system, false otherwise
30   *)
31 val is_directory: string -> bool
32
33   (** @return the filesize of fname *)
34 val filesize: string -> int
35
36   (** strip trailing '/', if any, from a string and @return the new string *)
37 val strip_trailing_slash: string -> string
38
39   (** strip heading '/', if any, from a string and @return the new string *)
40 val strip_heading_slash: string -> string
41
42   (** given a dir handle @return a list of entries contained *)
43 val ls: Unix.dir_handle -> string list
44
45   (** explode a string in a char list *)
46 val string_explode: string -> char list
47
48   (** implode a char list in a string *)
49 val string_implode: char list -> string
50
51   (** given an HTTP response code return the corresponding reason phrase *)
52 val reason_phrase_of_code: int -> string
53
54   (** build a Unix.sockaddr inet address from a string representation of an IP
55   address and a port number *)
56 val build_sockaddr: string * int -> Unix.sockaddr
57
58   (** explode an _inet_ Unix.sockaddr address in a string representation of an
59   IP address and a port number *)
60 val explode_sockaddr: Unix.sockaddr -> string * int
61
62   (** given an out_channel build on top of a socket, return peername related to
63   that socket *)
64 val peername_of_out_channel: out_channel -> Unix.sockaddr
65
66   (** as above but works on in_channels *)
67 val peername_of_in_channel: in_channel -> Unix.sockaddr
68
69   (** given an out_channel build on top of a socket, return sockname related to
70   that socket *)
71 val sockname_of_out_channel: out_channel -> Unix.sockaddr
72
73   (** as above but works on in_channels *)
74 val sockname_of_in_channel: in_channel -> Unix.sockaddr
75
76   (* TODO replace with Buffer.add_channel which does almost the same :-((( *)
77   (** reads from an input channel till it End_of_file and returns what has been
78   read; if limit is given returned buffer will contains at most first 'limit'
79   bytes read from input channel *)
80 val buf_of_inchan: ?limit: int -> in_channel -> Buffer.t
81
82   (** like List.assoc but return all bindings of a given key instead of the
83   leftmost one only *)
84 val list_assoc_all: 'a -> ('a * 'b) list -> 'b list
85
86 val warn: string -> unit (** print a warning msg to stderr. Adds trailing \n *)
87 val error: string -> unit (** print an error msg to stderr. Adds trailing \n *)
88
89   (** @param finalizer finalization function (execution both in case of success
90    * and in case of raised exception
91    * @param f function to be invoked
92    * @param arg argument to be passed to function *)
93 val finally: (unit -> unit) -> ('a -> 'b) -> 'a -> 'b
94