Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*)
-exception Invalid_HTTP_version of string
-exception Invalid_code of int
-exception Invalid_status of Http_types.status
+(** Common functionalities shared by other OCaml HTTP modules *)
-val http_version: Http_types.version
+open Http_types;;
-val string_of_version: Http_types.version -> string
-val version_of_string: string -> Http_types.version
+ (** whether debugging messages are enabled or not, can be changed at runtime
+ *)
+val debug: bool ref
-val status_of_code: int -> Http_types.status
-val code_of_status: [< Http_types.status] -> int
+ (** print a string on stderr only if debugging is enabled *)
+val debug_print: string -> unit
-val reason_phrase_of_code: int -> string
-val reason_phrase_of_status: [< Http_types.status] -> string
+ (** see {! Http_constants.version} *)
+val http_version: version
+ (** see {! Http_constants.server_string} *)
+val server_string: string
+
+ (** 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
+
+ (** 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