3 OCaml HTTP - do it yourself (fully OCaml) HTTP daemon
5 Copyright (C) <2002> Stefano Zacchiroli <zack@cs.unibo.it>
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 2 of the License, or
10 (at your option) any later version.
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with this program; if not, write to the Free Software
19 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
24 (** OO representation of an HTTP message
25 @param entity body included in the message
26 @param headers message headers shipped with the message *)
27 class virtual message:
28 body: string -> headers: (string * string) list -> version: version ->
29 clisockaddr: Unix.sockaddr -> srvsockaddr: Unix.sockaddr ->
32 method version: version
33 method setVersion: version -> unit
36 method setBody: string -> unit
37 method bodyBuf: Buffer.t
38 method setBodyBuf: Buffer.t -> unit
39 method addBody: string -> unit
40 method addBodyBuf: Buffer.t -> unit
42 method addHeader: name:string -> value:string -> unit
43 method addHeaders: (string * string) list -> unit
44 method replaceHeader: name:string -> value:string -> unit
45 method replaceHeaders: (string * string) list -> unit
46 method removeHeader: name:string -> unit
47 method hasHeader: name:string -> bool
48 method header: name:string -> string
49 method headers: (string * string) list
51 method clientSockaddr: Unix.sockaddr
52 method clientAddr: string
53 method clientPort: int
55 method serverSockaddr: Unix.sockaddr
56 method serverAddr: string
57 method serverPort: int
59 method private virtual fstLineToString: string
60 method toString: string
61 method serialize: out_channel -> unit