(*
OCaml HTTP - do it yourself (fully OCaml) HTTP daemon
- Copyright (C) <2002> Stefano Zacchiroli <zack@cs.unibo.it>
+ Copyright (C) <2002-2004> Stefano Zacchiroli <zack@cs.unibo.it>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*)
-(** Common functionalities *)
+(** Common functionalities shared by other OCaml HTTP modules *)
+
+open Http_types;;
(** whether debugging messages are enabled or not, can be changed at runtime
*)
val debug: bool ref
+
(** print a string on stderr only if debugging is enabled *)
val debug_print: string -> unit
-val http_version: Http_types.version
+ (** see {! Http_constants.version} *)
+val http_version: version
+
+ (** see {! Http_constants.server_string} *)
val server_string: string
-val string_of_version: Http_types.version -> string
-val version_of_string: string -> Http_types.version
+ (** pretty print an HTTP version *)
+val string_of_version: version -> string
+
+ (** parse an HTTP version from a string
+ @raise Invalid_HTTP_version if given string doesn't represent a supported HTTP
+ version *)
+val version_of_string: string -> version
+
+ (** pretty print an HTTP method *)
+val string_of_method: meth -> string
+
+ (** parse an HTTP method from a string
+ @raise Invalid_HTTP_method if given string doesn't represent a supported
+ method *)
+val method_of_string: string -> meth
-val status_of_code: int -> Http_types.status
-val code_of_status: [< Http_types.status] -> int
+ (** converts an integer HTTP status to the corresponding status value
+ @raise Invalid_code if given integer isn't a valid HTTP status code *)
+val status_of_code: int -> status
+ (** converts an HTTP status to the corresponding integer value *)
+val code_of_status: [< status] -> int
+
+ (** @return true on "informational" status codes, false elsewhere *)
val is_informational: int -> bool
+
+ (** @return true on "success" status codes, false elsewhere *)
val is_success: int -> bool
+
+ (** @return true on "redirection" status codes, false elsewhere *)
val is_redirection: int -> bool
+
+ (** @return true on "client error" status codes, false elsewhere *)
val is_client_error: int -> bool
+
+ (** @return true on "server error" status codes, false elsewhere *)
val is_server_error: int -> bool
+
+ (** @return true on "client error" and "server error" status code, false
+ elsewhere *)
val is_error: int -> bool