| `HTTP_1_1
]
-type meth = [ `GET ]
+type meth =
+ [ `GET
+ | `POST
+ ]
type daemon_mode = [ `Single | `Fork | `Thread ]
| server_error_status
]
-class type response =
- object
+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_HTTP_method 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 message = object
+
method version: version
method setVersion: version -> unit
+
+ method body: string
+ method setBody: string -> unit
+ method bodyBuf: Buffer.t
+ method setBodyBuf: Buffer.t -> unit
+ method addBody: string -> unit
+ method addBodyBuf: Buffer.t -> unit
+
+ method addHeader: name:string -> value:string -> unit
+ method addHeaders: (string * string) list -> 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 headers: (string * string) list
+
+ method clientSockaddr: Unix.sockaddr
+ method clientAddr: string
+ method clientPort: int
+
+ method serverSockaddr: Unix.sockaddr
+ method serverAddr: string
+ method serverPort: int
+
+ method toString: string
+ method serialize: out_channel -> unit
+
+ end
+
+class type request = object
+
+ inherit message
+
+ method meth: meth
+ method uri: string
+ method path: string
+ method param: ?meth:meth -> string -> string
+ method paramAll: ?meth:meth -> string -> string list
+ method params: (string * string) list
+ method params_GET: (string * string) list
+ method params_POST: (string * string) list
+
+ end
+
+class type response = object
+
+ inherit message
+
method code: int
method setCode: int -> unit
method status: status
method setReason: string -> unit
method statusLine: string
method setStatusLine: string -> unit
+
method isInformational: bool
method isSuccess: bool
method isRedirection: bool
method isClientError: bool
method isServerError: bool
method isError: bool
- method contents: string
- method setContents: string -> unit
- method contentsBuf: Buffer.t
- method setContentsBuf: Buffer.t -> unit
- method addContents: string -> unit
- method addContentsBuf: Buffer.t -> unit
- method addHeader: name:string -> value:string -> unit
+
method addBasicHeaders: unit
- method replaceHeader: name:string -> value:string -> unit
- method removeHeader: name:string -> unit
- method hasHeader: name:string -> bool
- method header: name:string -> string
- method headers: (string * string) list
method contentType: string
method setContentType: string -> unit
method contentEncoding: string
method setExpires: string -> unit
method server: string
method setServer: string -> unit
- method toString: string
- method serialize: out_channel -> unit
+
end
-class type request =
+
+class type connection =
object
- method uri: string
- method path: string
- method param: string -> string
- method params: (string * string) list
+ 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
+