sig
type mycookieslist =
(string list option * float option * (string * string) list) list
type create_sender_type =
?server_name:string ->
?proto:string -> Lwt_unix.descr -> Http_com.sender_type
type send_page_type =
?cookies:Predefined_senders.mycookieslist ->
unit Lwt.t ->
?code:int ->
?etag:Http_frame.etag ->
keep_alive:bool ->
?last_modified:float ->
?location:string ->
?head:bool -> ?charset:string -> Http_com.sender_type -> unit Lwt.t
val send_xhtml_page :
content:[ `Html ] XHTML.M.elt -> Predefined_senders.send_page_type
val send_file : content:string -> Predefined_senders.send_page_type
val send_empty : content:unit -> Predefined_senders.send_page_type
val send_text_page :
?contenttype:string ->
content:string -> Predefined_senders.send_page_type
val create_xhtml_sender : Predefined_senders.create_sender_type
val create_empty_sender : Predefined_senders.create_sender_type
val create_file_sender : Predefined_senders.create_sender_type
exception Stream_already_read
val send_error :
?http_exception:exn ->
?error_num:int -> Predefined_senders.send_page_type
module Xhtml_content :
sig
type t = [ `Html ] XHTML.M.elt
val get_etag_aux : string -> string
val get_etag : [ `Html ] XHTML.M.elt -> string
val stream_of_content :
[ `Html ] XHTML.M.elt ->
(int64 * string * Ocsistream.stream * ('a -> 'a)) Lwt.t
val content_of_stream : 'a -> 'b
end
module Text_content :
sig
type t = string
val get_etag : string -> string
val stream_of_content :
string -> (int64 * string * Ocsistream.stream * ('a -> 'a)) Lwt.t
val content_of_stream :
Ocsistream.stream -> Predefined_senders.Text_content.t Lwt.t
end
module Stream_content :
sig
type t = unit -> Ocsistream.stream
val get_etag : 'a -> 'b
val stream_of_content : 'a -> 'b
val content_of_stream :
Ocsistream.stream -> Predefined_senders.Stream_content.t Lwt.t
end
module Empty_content :
sig
type t = unit
val get_etag : 'a -> string
val stream_of_content :
'a -> (int64 * string * Ocsistream.stream * ('b -> 'b)) Lwt.t
val content_of_stream : Ocsistream.stream -> unit Lwt.t
end
module File_content :
sig
type t = string
val read_file :
?buffer_size:int -> Unix.file_descr -> Ocsistream.stream Lwt.t
val get_etag_aux : Unix.LargeFile.stats -> string
val get_etag : string -> string
val stream_of_content :
string -> (int64 * string * Ocsistream.stream * (unit -> unit)) Lwt.t
val content_of_stream : 'a -> 'b
end
module Empty_sender :
sig
module H :
sig
type http_mode = Http_frame.Http_header.http_mode = Query | Answer
type http_method =
Http_frame.Http_header.http_method =
GET
| POST
| HEAD
| PUT
| DELETE
| TRACE
| OPTIONS
| CONNECT
| LINK
| UNLINK
| PATCH
type http_header =
Http_frame.Http_header.http_header = {
mode : Predefined_senders.Empty_sender.H.http_mode;
meth : Predefined_senders.Empty_sender.H.http_method option;
url : string option;
code : int option;
proto : string;
headers : (string * string) list;
}
val get_url :
Predefined_senders.Empty_sender.H.http_header -> string
val get_headers_value :
Predefined_senders.Empty_sender.H.http_header -> string -> string
val get_proto :
Predefined_senders.Empty_sender.H.http_header -> string
val get_method :
Predefined_senders.Empty_sender.H.http_header ->
Predefined_senders.Empty_sender.H.http_method option
val add_headers :
Predefined_senders.Empty_sender.H.http_header ->
string -> string -> Predefined_senders.Empty_sender.H.http_header
end
module Http :
sig
type frame_content = Predefined_senders.Empty_content.t option
type http_frame =
Http_frame.FHttp_frame(Empty_content).http_frame = {
header : Http_frame.Http_header.http_header;
content : Predefined_senders.Empty_sender.Http.frame_content;
waiter_thread : unit Lwt.t;
}
end
module PP :
sig
module Http :
sig
type frame_content = Predefined_senders.Empty_content.t option
type http_frame =
Http_frame.FHttp_frame(Empty_content).http_frame = {
header : Http_frame.Http_header.http_header;
content :
Predefined_senders.Empty_sender.PP.Http.frame_content;
waiter_thread : unit Lwt.t;
}
end
val string_of_http_frame :
Predefined_senders.Empty_sender.PP.Http.http_frame ->
string option -> string
end
type t = Http_com.sender_type
val really_write :
Lwt_unix.descr -> (unit -> unit) -> Ocsistream.stream -> unit Lwt.t
val change_protocol : string -> Http_com.sender_type -> unit
val change_headers :
(string * string) list -> Http_com.sender_type -> unit
val change_mode :
Http_frame.Http_header.http_mode -> Http_com.sender_type -> unit
val non_case_equality : string -> string -> bool
val non_case_compare : string -> string -> int
val pair_order : string * string -> string * string -> bool
val add_header : Http_com.sender_type -> string -> string -> unit
val rem_header : Http_com.sender_type -> string -> unit
val get_protocol : Http_com.sender_type -> string
val get_mode : Http_com.sender_type -> Http_frame.Http_header.http_mode
val get_headers : Http_com.sender_type -> (string * string) list
val get_header_value : Http_com.sender_type -> string -> string
val hds_fusion :
int64 option ->
(string * string) list ->
(string * string) list -> (string * string) list
val send :
unit Lwt.t ->
?etag:Http_frame.etag ->
?mode:Predefined_senders.Empty_sender.H.http_mode ->
?proto:string ->
?headers:(string * string) list ->
?meth:Predefined_senders.Empty_sender.H.http_method ->
?url:string ->
?code:int ->
?content:Predefined_senders.Empty_content.t ->
?head:bool -> Http_com.sender_type -> unit Lwt.t
end
module Xhtml_sender :
sig
module H :
sig
type http_mode = Http_frame.Http_header.http_mode = Query | Answer
type http_method =
Http_frame.Http_header.http_method =
GET
| POST
| HEAD
| PUT
| DELETE
| TRACE
| OPTIONS
| CONNECT
| LINK
| UNLINK
| PATCH
type http_header =
Http_frame.Http_header.http_header = {
mode : Predefined_senders.Xhtml_sender.H.http_mode;
meth : Predefined_senders.Xhtml_sender.H.http_method option;
url : string option;
code : int option;
proto : string;
headers : (string * string) list;
}
val get_url :
Predefined_senders.Xhtml_sender.H.http_header -> string
val get_headers_value :
Predefined_senders.Xhtml_sender.H.http_header -> string -> string
val get_proto :
Predefined_senders.Xhtml_sender.H.http_header -> string
val get_method :
Predefined_senders.Xhtml_sender.H.http_header ->
Predefined_senders.Xhtml_sender.H.http_method option
val add_headers :
Predefined_senders.Xhtml_sender.H.http_header ->
string -> string -> Predefined_senders.Xhtml_sender.H.http_header
end
module Http :
sig
type frame_content = Predefined_senders.Xhtml_content.t option
type http_frame =
Http_frame.FHttp_frame(Xhtml_content).http_frame = {
header : Http_frame.Http_header.http_header;
content : Predefined_senders.Xhtml_sender.Http.frame_content;
waiter_thread : unit Lwt.t;
}
end
module PP :
sig
module Http :
sig
type frame_content = Predefined_senders.Xhtml_content.t option
type http_frame =
Http_frame.FHttp_frame(Xhtml_content).http_frame = {
header : Http_frame.Http_header.http_header;
content :
Predefined_senders.Xhtml_sender.PP.Http.frame_content;
waiter_thread : unit Lwt.t;
}
end
val string_of_http_frame :
Predefined_senders.Xhtml_sender.PP.Http.http_frame ->
string option -> string
end
type t = Http_com.sender_type
val really_write :
Lwt_unix.descr -> (unit -> unit) -> Ocsistream.stream -> unit Lwt.t
val change_protocol : string -> Http_com.sender_type -> unit
val change_headers :
(string * string) list -> Http_com.sender_type -> unit
val change_mode :
Http_frame.Http_header.http_mode -> Http_com.sender_type -> unit
val non_case_equality : string -> string -> bool
val non_case_compare : string -> string -> int
val pair_order : string * string -> string * string -> bool
val add_header : Http_com.sender_type -> string -> string -> unit
val rem_header : Http_com.sender_type -> string -> unit
val get_protocol : Http_com.sender_type -> string
val get_mode : Http_com.sender_type -> Http_frame.Http_header.http_mode
val get_headers : Http_com.sender_type -> (string * string) list
val get_header_value : Http_com.sender_type -> string -> string
val hds_fusion :
int64 option ->
(string * string) list ->
(string * string) list -> (string * string) list
val send :
unit Lwt.t ->
?etag:Http_frame.etag ->
?mode:Predefined_senders.Xhtml_sender.H.http_mode ->
?proto:string ->
?headers:(string * string) list ->
?meth:Predefined_senders.Xhtml_sender.H.http_method ->
?url:string ->
?code:int ->
?content:Predefined_senders.Xhtml_content.t ->
?head:bool -> Http_com.sender_type -> unit Lwt.t
end
module Text_http_frame :
sig
type frame_content = Predefined_senders.Text_content.t option
type http_frame =
Http_frame.FHttp_frame(Text_content).http_frame = {
header : Http_frame.Http_header.http_header;
content : Predefined_senders.Text_http_frame.frame_content;
waiter_thread : unit Lwt.t;
}
end
module Text_sender :
sig
module H :
sig
type http_mode = Http_frame.Http_header.http_mode = Query | Answer
type http_method =
Http_frame.Http_header.http_method =
GET
| POST
| HEAD
| PUT
| DELETE
| TRACE
| OPTIONS
| CONNECT
| LINK
| UNLINK
| PATCH
type http_header =
Http_frame.Http_header.http_header = {
mode : Predefined_senders.Text_sender.H.http_mode;
meth : Predefined_senders.Text_sender.H.http_method option;
url : string option;
code : int option;
proto : string;
headers : (string * string) list;
}
val get_url :
Predefined_senders.Text_sender.H.http_header -> string
val get_headers_value :
Predefined_senders.Text_sender.H.http_header -> string -> string
val get_proto :
Predefined_senders.Text_sender.H.http_header -> string
val get_method :
Predefined_senders.Text_sender.H.http_header ->
Predefined_senders.Text_sender.H.http_method option
val add_headers :
Predefined_senders.Text_sender.H.http_header ->
string -> string -> Predefined_senders.Text_sender.H.http_header
end
module Http :
sig
type frame_content = Predefined_senders.Text_content.t option
type http_frame =
Http_frame.FHttp_frame(Text_content).http_frame = {
header : Http_frame.Http_header.http_header;
content : Predefined_senders.Text_sender.Http.frame_content;
waiter_thread : unit Lwt.t;
}
end
module PP :
sig
module Http :
sig
type frame_content = Predefined_senders.Text_content.t option
type http_frame =
Http_frame.FHttp_frame(Text_content).http_frame = {
header : Http_frame.Http_header.http_header;
content :
Predefined_senders.Text_sender.PP.Http.frame_content;
waiter_thread : unit Lwt.t;
}
end
val string_of_http_frame :
Predefined_senders.Text_sender.PP.Http.http_frame ->
string option -> string
end
type t = Http_com.sender_type
val really_write :
Lwt_unix.descr -> (unit -> unit) -> Ocsistream.stream -> unit Lwt.t
val change_protocol : string -> Http_com.sender_type -> unit
val change_headers :
(string * string) list -> Http_com.sender_type -> unit
val change_mode :
Http_frame.Http_header.http_mode -> Http_com.sender_type -> unit
val non_case_equality : string -> string -> bool
val non_case_compare : string -> string -> int
val pair_order : string * string -> string * string -> bool
val add_header : Http_com.sender_type -> string -> string -> unit
val rem_header : Http_com.sender_type -> string -> unit
val get_protocol : Http_com.sender_type -> string
val get_mode : Http_com.sender_type -> Http_frame.Http_header.http_mode
val get_headers : Http_com.sender_type -> (string * string) list
val get_header_value : Http_com.sender_type -> string -> string
val hds_fusion :
int64 option ->
(string * string) list ->
(string * string) list -> (string * string) list
val send :
unit Lwt.t ->
?etag:Http_frame.etag ->
?mode:Predefined_senders.Text_sender.H.http_mode ->
?proto:string ->
?headers:(string * string) list ->
?meth:Predefined_senders.Text_sender.H.http_method ->
?url:string ->
?code:int ->
?content:Predefined_senders.Text_content.t ->
?head:bool -> Http_com.sender_type -> unit Lwt.t
end
module Text_receiver :
sig
module Http :
sig
type frame_content = Predefined_senders.Text_content.t option
type http_frame =
Http_frame.FHttp_frame(Text_content).http_frame = {
header : Http_frame.Http_header.http_header;
content : Predefined_senders.Text_receiver.Http.frame_content;
waiter_thread : unit Lwt.t;
}
end
type t =
Http_com.FHttp_receiver(Text_content).t = {
buffer : Http_com.Com_buffer.t;
fd : Lwt_unix.descr;
}
val create : Lwt_unix.descr -> Predefined_senders.Text_receiver.t
val http_header_of_stream :
Ocsistream.stream -> Http_frame.Http_header.http_header Lwt.t
val get_http_frame :
unit Lwt.t ->
Predefined_senders.Text_receiver.t ->
doing_keep_alive:bool ->
unit -> Predefined_senders.Text_receiver.Http.http_frame Lwt.t
end
module Stream_http_frame :
sig
type frame_content = Predefined_senders.Stream_content.t option
type http_frame =
Http_frame.FHttp_frame(Stream_content).http_frame = {
header : Http_frame.Http_header.http_header;
content : Predefined_senders.Stream_http_frame.frame_content;
waiter_thread : unit Lwt.t;
}
end
module Stream_receiver :
sig
module Http :
sig
type frame_content = Predefined_senders.Stream_content.t option
type http_frame =
Http_frame.FHttp_frame(Stream_content).http_frame = {
header : Http_frame.Http_header.http_header;
content : Predefined_senders.Stream_receiver.Http.frame_content;
waiter_thread : unit Lwt.t;
}
end
type t =
Http_com.FHttp_receiver(Stream_content).t = {
buffer : Http_com.Com_buffer.t;
fd : Lwt_unix.descr;
}
val create : Lwt_unix.descr -> Predefined_senders.Stream_receiver.t
val http_header_of_stream :
Ocsistream.stream -> Http_frame.Http_header.http_header Lwt.t
val get_http_frame :
unit Lwt.t ->
Predefined_senders.Stream_receiver.t ->
doing_keep_alive:bool ->
unit -> Predefined_senders.Stream_receiver.Http.http_frame Lwt.t
end
module File_sender :
sig
module H :
sig
type http_mode = Http_frame.Http_header.http_mode = Query | Answer
type http_method =
Http_frame.Http_header.http_method =
GET
| POST
| HEAD
| PUT
| DELETE
| TRACE
| OPTIONS
| CONNECT
| LINK
| UNLINK
| PATCH
type http_header =
Http_frame.Http_header.http_header = {
mode : Predefined_senders.File_sender.H.http_mode;
meth : Predefined_senders.File_sender.H.http_method option;
url : string option;
code : int option;
proto : string;
headers : (string * string) list;
}
val get_url :
Predefined_senders.File_sender.H.http_header -> string
val get_headers_value :
Predefined_senders.File_sender.H.http_header -> string -> string
val get_proto :
Predefined_senders.File_sender.H.http_header -> string
val get_method :
Predefined_senders.File_sender.H.http_header ->
Predefined_senders.File_sender.H.http_method option
val add_headers :
Predefined_senders.File_sender.H.http_header ->
string -> string -> Predefined_senders.File_sender.H.http_header
end
module Http :
sig
type frame_content = Predefined_senders.File_content.t option
type http_frame =
Http_frame.FHttp_frame(File_content).http_frame = {
header : Http_frame.Http_header.http_header;
content : Predefined_senders.File_sender.Http.frame_content;
waiter_thread : unit Lwt.t;
}
end
module PP :
sig
module Http :
sig
type frame_content = Predefined_senders.File_content.t option
type http_frame =
Http_frame.FHttp_frame(File_content).http_frame = {
header : Http_frame.Http_header.http_header;
content :
Predefined_senders.File_sender.PP.Http.frame_content;
waiter_thread : unit Lwt.t;
}
end
val string_of_http_frame :
Predefined_senders.File_sender.PP.Http.http_frame ->
string option -> string
end
type t = Http_com.sender_type
val really_write :
Lwt_unix.descr -> (unit -> unit) -> Ocsistream.stream -> unit Lwt.t
val change_protocol : string -> Http_com.sender_type -> unit
val change_headers :
(string * string) list -> Http_com.sender_type -> unit
val change_mode :
Http_frame.Http_header.http_mode -> Http_com.sender_type -> unit
val non_case_equality : string -> string -> bool
val non_case_compare : string -> string -> int
val pair_order : string * string -> string * string -> bool
val add_header : Http_com.sender_type -> string -> string -> unit
val rem_header : Http_com.sender_type -> string -> unit
val get_protocol : Http_com.sender_type -> string
val get_mode : Http_com.sender_type -> Http_frame.Http_header.http_mode
val get_headers : Http_com.sender_type -> (string * string) list
val get_header_value : Http_com.sender_type -> string -> string
val hds_fusion :
int64 option ->
(string * string) list ->
(string * string) list -> (string * string) list
val send :
unit Lwt.t ->
?etag:Http_frame.etag ->
?mode:Predefined_senders.File_sender.H.http_mode ->
?proto:string ->
?headers:(string * string) list ->
?meth:Predefined_senders.File_sender.H.http_method ->
?url:string ->
?code:int ->
?content:Predefined_senders.File_content.t ->
?head:bool -> Http_com.sender_type -> unit Lwt.t
end
val gmtdate : float -> string
val send_generic :
unit Lwt.t ->
?code:int ->
?etag:Http_frame.etag ->
?cookies:Predefined_senders.mycookieslist ->
keep_alive:bool ->
?last_modified:float ->
?contenttype:string ->
?charset:string ->
?location:string ->
?header:(string * string) list ->
?head:bool ->
content:'a ->
'b ->
(unit Lwt.t ->
?etag:Http_frame.etag ->
?mode:Predefined_senders.Xhtml_sender.H.http_mode ->
?proto:string ->
?headers:(string * string) list ->
?meth:'c ->
?url:string ->
?code:int -> ?content:'a -> ?head:bool -> 'b -> unit Lwt.t) ->
unit Lwt.t
val mimeht : (string, string) Hashtbl.t
val parse_mime_types : string -> unit
val affiche_mime : unit -> unit
val content_type_from_file_name :
Predefined_senders.File_content.t -> string
end