eliom

Client/server Web framework
IN THIS PACKAGE
Module Eliom_common
type scope_hierarchy = Eliom_common_base.scope_hierarchy
type user_scope = [
| `Client_process of scope_hierarchy
| `Session of scope_hierarchy
| `Session_group of scope_hierarchy
]
type scope = [
| `Client_process of scope_hierarchy
| `Session of scope_hierarchy
| `Session_group of scope_hierarchy
| `Site
]
type all_scope = [
| `Client_process of scope_hierarchy
| `Global
| `Request
| `Session of scope_hierarchy
| `Session_group of scope_hierarchy
| `Site
]
type user_level = [
| `Client_process
| `Session
| `Session_group
]
val level_of_user_scope : [< user_scope ] -> [> user_level ]
type global_scope = [
| `Global
]
type site_scope = [
| `Site
]
type session_group_scope = [
| `Session_group of scope_hierarchy
]
type session_scope = [
| `Session of scope_hierarchy
]
type client_process_scope = [
| `Client_process of scope_hierarchy
]
type request_scope = [
| `Request
]
val global_scope : global_scope
val site_scope : site_scope
val default_group_scope : session_group_scope
val default_session_scope : session_scope
val default_process_scope : client_process_scope
val comet_client_process_scope : client_process_scope
val request_scope : request_scope
val create_scope_hierarchy : string -> scope_hierarchy
val list_scope_hierarchies : unit -> scope_hierarchy list
exception Eliom_404
exception Eliom_Wrong_parameter
exception Eliom_Session_expired
exception Eliom_Typing_Error of (string * exn) list
exception Eliom_site_information_not_available of string
type full_state_name = user_scope * bool * string
module Full_state_name_table : sig ... end
val eliom_service_session_expired : (full_state_name list * full_state_name list) Polytables.key
exception Eliom_do_redirection of string
exception Eliom_do_half_xhr_redirection of string
type !'a tenable_value = < get : 'a ; set : ?override_tenable:bool -> 'a -> unit >
val tenable_value : name:string -> 'a -> 'a tenable_value
type att_key_serv =
| SAtt_no
| SAtt_named of string
| SAtt_anon of string
| SAtt_csrf_safe of int * user_scope * bool option
| SAtt_na_named of string
| SAtt_na_anon of string
| SAtt_na_csrf_safe of int * user_scope * bool option
type na_key_serv =
| SNa_no
| SNa_void_keep
| SNa_void_dontkeep
| SNa_get_ of string
| SNa_post_ of string
| SNa_get' of string
| SNa_post' of string
| SNa_get_csrf_safe of int * user_scope * bool option
| SNa_post_csrf_safe of int * user_scope * bool option
type att_key_req =
| RAtt_no
| RAtt_named of string
| RAtt_anon of string
type na_key_req =
| RNa_no
| RNa_get_ of string
| RNa_post_ of string
| RNa_get' of string
| RNa_post' of string
exception Eliom_duplicate_registration of string
exception Eliom_there_are_unregistered_services of string list * string list list * na_key_serv list
exception Eliom_page_erasing of string
exception Eliom_error_while_loading_site of string
val defaultpagename : string
val eliom_suffix_name : string
val eliom_suffix_internal_name : string
val eliom_nosuffix_page : string
val naservice_num : string
val naservice_name : string
val get_state_param_name : string
val post_state_param_name : string
val get_numstate_param_name : string
val post_numstate_param_name : string
val co_param_prefix : string
val na_co_param_prefix : string
val nl_param_prefix : string
val eliom_internal_nlp_prefix : string
val pnl_param_prefix : string
val npnl_param_prefix : string
val datacookiename : string
val servicecookiename : string
val persistentcookiename : string
val tab_cookies_param_name : string
val to_be_considered_as_get_param_name : string
val full_xhr_redir_header : string
val half_xhr_redir_header : string
val default_group_name : string
type client_process_info = {
cpi_ssl : bool;
cpi_hostname : string;
cpi_server_port : int;
cpi_original_full_path : Eliom_lib.Url.path;
}
type sess_info = {
si_other_get_params : (string * string) list;
si_all_get_params : (string * string) list;
si_all_post_params : (string * string) list option;
si_all_file_params : (string * Eliom_lib.file_info) list option;
si_service_session_cookies : string Full_state_name_table.t;
si_data_session_cookies : string Full_state_name_table.t;
si_persistent_session_cookies : string Full_state_name_table.t;
si_service_session_cookies_tab : string Full_state_name_table.t;
si_data_session_cookies_tab : string Full_state_name_table.t;
si_persistent_session_cookies_tab : string Full_state_name_table.t;
si_tab_cookies : string Ocsigen_cookies.CookiesTable.t;
si_nonatt_info : na_key_req;
si_state_info : att_key_req * att_key_req;
si_previous_extension_error : int;
si_na_get_params : (string * string) list Lazy.t;
si_nl_get_params : (string * string) list Eliom_lib.String.Table.t;
si_nl_post_params : (string * string) list Eliom_lib.String.Table.t;
si_nl_file_params : (string * Eliom_lib.file_info) list Eliom_lib.String.Table.t;
si_persistent_nl_get_params : (string * string) list Eliom_lib.String.Table.t Lazy.t;
si_all_get_but_na_nl : (string * string) list Lazy.t;
si_all_get_but_nl : (string * string) list;
si_client_process_info : client_process_info option;
si_expect_process_data : bool Lazy.t;
}
module SessionCookies : sig ... end
type 'a sessgrp = string * cookie_level * ( string, Ipaddr.t ) Eliom_lib.leftright
type perssessgrp
val make_persistent_full_group_name : cookie_level:cookie_level -> string -> string option -> perssessgrp option
val getperssessgrp : perssessgrp -> string * cookie_level * ( string, Ipaddr.t ) Eliom_lib.leftright
val string_of_perssessgrp : perssessgrp -> string
type timeout =
| TGlobal
| TNone
| TSome of float
type !'a servicecookiestablecontent = full_state_name * 'a * float option Pervasives.ref * timeout Pervasives.ref * cookie_level sessgrp Pervasives.ref * string Ocsigen_cache.Dlist.node
type 'a servicecookiestable = 'a servicecookiestablecontent SessionCookies.t
type meth = [
| `Delete
| `Get
| `Other
| `Post
| `Put
]
type page_table_key = {
key_state : att_key_serv * att_key_serv;
key_meth : meth;
}
module NAserv_Table : sig ... end
module Serv_Table : sig ... end
type dlist_ip_table
type anon_params_type = int
type node_ref = string
type node_info = {
ni_id : node_ref;
mutable ni_sent : bool;
}
module Hier_set : Set.S
type !'a dircontent =
| Vide
| Table of 'a direlt Pervasives.ref Eliom_lib.String.Table.t
and !'a direlt =
| Dir of 'a dircontent Pervasives.ref
| File of 'a Pervasives.ref
type (!'params, !'result) service = {
s_id : anon_params_type * anon_params_type;
mutable s_max_use : int option;
s_expire : (float * float Pervasives.ref) option;
s_f : bool -> 'params -> 'result Lwt.t;
}
type server_params = {
sp_request : Ocsigen_extensions.request;
sp_si : sess_info;
sp_sitedata : sitedata;
mutable sp_user_cookies : Ocsigen_cookies.cookieset;
mutable sp_user_tab_cookies : Ocsigen_cookies.cookieset;
mutable sp_client_appl_name : string option;
sp_suffix : Eliom_lib.Url.path option;
sp_full_state_name : full_state_name option;
sp_client_process_info : client_process_info;
}
and naservice_table =
| AVide
| ATable of naservice_table_content NAserv_Table.t
and tables = {
mutable table_services : (int * int * page_table dircontent Pervasives.ref) list;
table_naservices : naservice_table Pervasives.ref;
mutable table_contains_services_with_timeout : bool;
mutable table_contains_naservices_with_timeout : bool;
mutable csrf_get_or_na_registration_functions : ( sp:server_params -> string ) Eliom_lib.Int.Table.t;
mutable csrf_post_registration_functions : ( sp:server_params -> att_key_serv -> string ) Eliom_lib.Int.Table.t;
service_dlist_add : ?sp:server_params -> ( page_table Pervasives.ref * page_table_key, na_key_serv ) Eliom_lib.leftright -> ( page_table Pervasives.ref * page_table_key, na_key_serv ) Eliom_lib.leftright Ocsigen_cache.Dlist.node;
}
and sitedata = {
site_dir : Eliom_lib.Url.path;
site_dir_string : string;
config_info : Ocsigen_extensions.config_info;
mutable servtimeout : (float option * bool) option * (float option * bool) option * (full_state_name * (float option * bool)) list;
mutable datatimeout : (float option * bool) option * (float option * bool) option * (full_state_name * (float option * bool)) list;
mutable perstimeout : (float option * bool) option * (float option * bool) option * (full_state_name * (float option * bool)) list;
site_value_table : Polytables.t;
mutable registered_scope_hierarchies : Hier_set.t;
global_services : tables;
session_services : tables servicecookiestable;
session_data : datacookiestable;
group_of_groups : [ `Session_group ] sessgrp Ocsigen_cache.Dlist.t;
mutable remove_session_data : string -> unit;
mutable not_bound_in_data_tables : string -> bool;
mutable exn_handler : exn -> Ocsigen_http_frame.result Lwt.t;
mutable unregistered_services : Eliom_lib.Url.path list;
mutable unregistered_na_services : na_key_serv list;
mutable max_volatile_data_sessions_per_group : int * bool;
mutable max_volatile_data_sessions_per_subnet : int * bool;
mutable max_volatile_data_tab_sessions_per_group : int * bool;
mutable max_service_sessions_per_group : int * bool;
mutable max_service_sessions_per_subnet : int * bool;
mutable max_service_tab_sessions_per_group : int * bool;
mutable max_persistent_data_sessions_per_group : int option * bool;
mutable max_persistent_data_tab_sessions_per_group : int option * bool;
mutable max_anonymous_services_per_session : int * bool;
mutable max_anonymous_services_per_subnet : int * bool;
mutable secure_cookies : bool;
dlist_ip_table : dlist_ip_table;
mutable ipv4mask : int option * bool;
mutable ipv6mask : int option * bool;
mutable application_script : bool * bool;
}
type 'a lazy_site_value
val force_lazy_site_value : 'a lazy_site_value -> 'a
val lazy_site_value_from_fun : ( unit -> 'a ) -> 'a lazy_site_value
exception Eliom_retry_with of info
val make_server_params : sitedata -> info -> Eliom_lib.Url.path option -> full_state_name option -> server_params
val empty_page_table : unit -> page_table
val empty_dircontent : unit -> 'a dircontent
val empty_naservice_table : unit -> naservice_table
val service_tables_are_empty : tables -> bool
val empty_tables : int -> bool -> tables
val new_service_session_tables : sitedata -> tables
val split_prefix_param : string -> (string * 'a) list -> (string * 'a) list * (string * 'a) list
type (!'a, !'b) foundornot =
| Found of 'a
| Notfound of 'b
val make_full_state_name : sp:server_params -> secure:bool -> scope:[< user_scope ] -> full_state_name
val make_full_state_name2 : string -> bool -> scope:[< user_scope ] -> full_state_name
module Perstables : sig ... end
val perstables : string list Pervasives.ref
val create_persistent_table : string -> 'a Ocsipersist.table Lwt.t
val persistent_cookies_table : (full_state_name * float option * timeout * perssessgrp option) Ocsipersist.table Lwt.t Lazy.t
val remove_from_all_persistent_tables : string -> unit Lwt.t
val absolute_change_sitedata : sitedata -> unit
val get_current_sitedata : unit -> sitedata
val end_current_sitedata : unit -> unit
val add_unregistered : sitedata -> Eliom_lib.Url.path -> unit
val add_unregistered_na : sitedata -> na_key_serv -> unit
val remove_unregistered : sitedata -> Eliom_lib.Url.path -> unit
val remove_unregistered_na : sitedata -> na_key_serv -> unit
val verify_all_registered : sitedata -> unit
val during_eliom_module_loading : unit -> bool
val begin_load_eliom_module : unit -> unit
val end_load_eliom_module : unit -> unit
val global_register_allowed : unit -> ( unit -> sitedata ) option
val get_site_data : unit -> sitedata
val eliom_params_after_action : ((string * string) list * (string * string) list option * (string * Eliom_lib.file_info) list option * (string * string) list Eliom_lib.String.Table.t * (string * string) list Eliom_lib.String.Table.t * (string * Eliom_lib.file_info) list Eliom_lib.String.Table.t * (string * string) list) Polytables.key
val att_key_serv_of_req : att_key_req -> att_key_serv
val na_key_serv_of_req : na_key_req -> na_key_serv
val remove_naservice_table : naservice_table -> NAserv_Table.key -> naservice_table
val get_mask4 : sitedata -> int
val get_mask6 : sitedata -> int
val network_of_ip : Ipaddr.t -> int -> int -> Ipaddr.t
val ipv4mask : int Pervasives.ref
val ipv6mask : int Pervasives.ref
val create_dlist_ip_table : int -> dlist_ip_table
val find_dlist_ip_table : (int option * 'a) -> (int option * 'a) -> dlist_ip_table -> Ipaddr.t -> ( page_table Pervasives.ref * page_table_key, na_key_serv ) Eliom_lib.leftright Ocsigen_cache.Dlist.t
val sp_key : server_params Lwt.key
val get_sp_option : unit -> server_params option
val get_sp : unit -> server_params
val sp_of_option : server_params option -> server_params
val found_stop_key : unit Polytables.key
type 'a wrapper = 'a Eliom_wrap.wrapper
val make_wrapper : ( 'a -> 'b ) -> 'a wrapper
val empty_wrapper : unit -> 'a wrapper
type unwrapper = Eliom_wrap.unwrapper
type unwrap_id = Eliom_wrap.unwrap_id
val make_unwrapper : unwrap_id -> unwrapper
val empty_unwrapper : unwrapper
val react_up_unwrap_id : unwrap_id
val react_down_unwrap_id : unwrap_id
val signal_down_unwrap_id : unwrap_id
val comet_channel_unwrap_id : unwrap_id
val bus_unwrap_id : unwrap_id
val nl_get_appl_parameter : string
type eliom_js_page_data = {
ejs_global_data : (Eliom_runtime.global_data * Eliom_wrap.unwrapper) option;
ejs_request_data : Eliom_runtime.request_data;
ejs_event_handler_table : Eliom_runtime.RawXML.event_handler_table;
ejs_client_attrib_table : Eliom_runtime.RawXML.client_attrib_table;
ejs_sess_info : sess_info;
}
val get_site_dir : sitedata -> Eliom_lib.Url.path
val get_site_dir_string : sitedata -> string
val get_secure : secure_o:bool option -> sitedata:sitedata -> unit -> bool
val is_client_app : bool Pervasives.ref
val make_actual_path : string list -> string list
type !'a to_and_of = {
of_string : string -> 'a;
to_string : 'a -> string;
}
module To_and_of_shared : sig ... end
val client_html_file : unit -> string