type meth = [ `GET ]
+type daemon_mode = [ `Single | `Fork | `Thread ]
+
+type tcp_server =
+ sockaddr:Unix.sockaddr -> timeout:int option ->
+ (in_channel -> out_channel -> unit) ->
+ unit
+
type informational_substatus =
[ `Continue
| `Switching_protocols
| server_error_status
]
+exception Invalid_header of string
+exception Invalid_header_name of string
+exception Invalid_header_value of string
+exception Invalid_HTTP_version of string
+exception Invalid_code of int
+exception Invalid_status of status
+
+exception Malformed_query of string
+exception Malformed_query_part of string * string
+exception Unsupported_method of string
+exception Unsupported_HTTP_version of string
+exception Malformed_request_URI of string
+exception Malformed_request of string
+
+exception Param_not_found of string
+
+exception Invalid_status_line of string
+exception Header_not_found of string
+
class type response =
object
method version: version
method addContents: string -> unit
method addContentsBuf: Buffer.t -> unit
method addHeader: name:string -> value:string -> unit
+ method addHeaders: (string * string) list -> unit
+ method addBasicHeaders: unit
method replaceHeader: name:string -> value:string -> unit
+ method replaceHeaders: (string * string) list -> unit
method removeHeader: name:string -> unit
method hasHeader: name:string -> bool
method header: name:string -> string
method setExpires: string -> unit
method server: string
method setServer: string -> unit
+ method toString: string
method serialize: out_channel -> unit
end
class type request =
method uri: string
method path: string
method param: string -> string
+ method paramAll: string -> string list
method params: (string * string) list
+ method clientSockaddr: Unix.sockaddr
+ method clientAddr: string
+ method clientPort: int
end
+class type connection =
+ object
+ method getRequest: request option
+ method respond_with: response -> unit
+ method close: unit
+ end
+class type daemon =
+ object
+ method accept: connection
+ method getRequest: request * connection
+ end
+