Warning: Reason support is experimental. We are looking for beta-tester and contributors.

Module Eliom_common

module Eliom_common : sig..end

Low level functions for Eliom, exceptions and types.

exception Eliom_404

Page not found

exception Eliom_Wrong_parameter

Service called with wrong parameter names

exception Eliom_Session_expired
exception Eliom_Typing_Error of (string * exn) list

The service (GET or POST) parameters do not match expected type

exception Eliom_site_information_not_available of string

That function cannot be used when the site information is not available, that is, outside a request or the initialisation phase of your Eliom module (while reading the configuration file).

In particular, you cannot use the function before the configuration file is read for example when you are using static linking. In that case you must delay the function call using Eliom_service.register_eliom_module.

type scope_name = Eliom_common_base.scope_name
type user_scope = 
  [ `Client_process of scope_name
  | `Session of scope_name
  | `Session_group of scope_name ]
type scope = 
  [ `Client_process of scope_name
  | `Session of scope_name
  | `Session_group of scope_name
  | `Site ]
type all_scope = 
  [ `Client_process of scope_name
  | `Global
  | `Request
  | `Session of scope_name
  | `Session_group of scope_name
  | `Site ]
type global_scope = [ `Global ]
type site_scope = [ `Site ]
type session_group_scope = [ `Session_group of scope_name ]
type session_scope = [ `Session of scope_name ]
type client_process_scope = [ `Client_process of scope_name ]
type request_scope = [ `Request ]
val global : global_scope
val site : site_scope
val session_group : session_group_scope
val session : session_scope
val client_process : client_process_scope
val comet_client_process : client_process_scope
val request : request_scope
val create_scope_name : string -> scope_name
val list_scope_names : unit -> scope_name list
type cookie_scope = [ `Client_process | `Session ]

Eliom is using regular (browser) cookies but can also use browser tab cookies (only if you are using a client side program)

It is possible to define data tables or service table for one (browser) session, for one tab, or for one group of sessions.

val cookie_scope_of_user_scope : [< user_scope ] -> [> cookie_scope ]
type fullsessionname = cookie_scope * string
module Fullsessionname_Table : Map.Swith type key = fullsessionname

If present and true in request data, it means that the previous coservice does not exist any more

val eliom_service_session_expired : 
  (fullsessionname list * fullsessionname list)

If present in request data, means that the service session cookies does not exist any more. The string lists are the list of names of expired sessions