71a58819569572c6a69c98bbef721b28288f7f13
[bpt/mlt.git] / src / lib / web.sig
1 (*
2 * Dynamic web page generation with Standard ML
3 * Copyright (C) 2003 Adam Chlipala
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *)
19
20 (* CGI interaction *)
21
22 signature WEB =
23 sig
24 val for : (int -> unit) -> int * int -> unit
25
26 val print : string -> unit
27 val clear : unit -> unit
28 val noOutput : unit -> bool
29 val output : unit -> unit
30
31 val setParam : string * string list -> unit
32 val setSingleParam : string * string -> unit
33 val getParam : string -> string
34 val getMultiParam : string -> string list
35
36 val pushParams : (string * string list) list -> unit
37 val popParams : unit -> unit
38 val withParams : (unit -> 'a) -> (string * string list) list -> 'a
39
40 val getCgi : string -> string option
41
42 val html : string -> string
43 val htmlNl : string -> string
44 val urlEncode : string -> string
45
46 exception Format of string
47 val stoi : string -> int
48 val stor : string -> real
49
50 val summary : unit -> string
51
52 val getExn : unit -> exn
53 val setExn : exn -> unit
54
55 val setHeader : string * string -> unit
56 val getHeader : string -> string option
57
58 type cookie = {name : string, value : string, expires : Date.date option,
59 domain : string option, path : string option, secure : bool}
60 val setCookie : cookie -> unit
61 val getCookie : string -> string option
62
63 val remoteHost : unit -> string option
64
65 val minusSeconds : Time.time * int -> Time.time
66
67 val replaceUrlVar : string * string * string -> string
68 end