package eliom

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

Module Eliom_commonSource

Low level functions for Eliom, exceptions and types.

Sourcemodule Ocsipersist : module type of Ocsipersist

Scopes

Sourcetype user_scope = [
  1. | `Session_group of scope_hierarchy
  2. | cookie_scope
]
Sourcetype scope = [
  1. | `Site
  2. | user_scope
]
Sourcetype all_scope = [
  1. | scope
  2. | `Global
  3. | `Request
]
Sourcetype user_level = [
  1. | `Session_group
  2. | cookie_level
]
Sourceval level_of_user_scope : [< user_scope ] -> [> user_level ]
Sourceval scope_hierarchy_of_user_scope : [< user_scope ] -> scope_hierarchy

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

It is possible to define Eliom references or services for one (browser) session, for one tab, or for one group of sessions.

Using `Global scope means you want the data or service to be available to any client. `Site is limited to current sub-site (if you have several sites on the same server).

If you want to restrict the visibility of an Eliom reference or a service: * to a browser session, use ~scope:Eliom_common.default_session_scope, * to a group of sessions, use ~scope:Eliom_common.default_group_scope, * to a client process, use ~scope:Eliom_common.default_process_scope. If you have a client side Eliom program running, and you want to restrict the visibility of the service to this instance of the program, use ~scope:Eliom_common.default_process_scope.

You can create new scope hierarchies with Eliom_common.create_scope_hierarchy. Thus it is possible to have for example several sessions that can be opened or closed independently. They use different cookies.

Secure scopes are associated to secure cookies (that is, cookies sent by browsers only if the protocol is https).

Sourcetype global_scope = [
  1. | `Global
]
Sourcetype site_scope = [
  1. | `Site
]
Sourcetype session_group_scope = [
  1. | `Session_group of scope_hierarchy
]
Sourcetype session_scope = [
  1. | `Session of scope_hierarchy
]
Sourcetype client_process_scope = [
  1. | `Client_process of scope_hierarchy
]
Sourcetype request_scope = [
  1. | `Request
]
Sourceval global_scope : [> global_scope ]
Sourceval site_scope : [> site_scope ]
Sourceval default_group_scope : [> session_group_scope ]
Sourceval default_session_scope : [> session_scope ]
Sourceval default_process_scope : [> client_process_scope ]
Sourceval comet_client_process_scope : [> client_process_scope ]
Sourceval request_scope : [> request_scope ]
Sourceval create_scope_hierarchy : string -> scope_hierarchy
Sourceval list_scope_hierarchies : unit -> scope_hierarchy list

Exception and error handling

Sourceexception Eliom_404

Page not found

Sourceexception Eliom_Wrong_parameter

Service called with wrong parameter names

Sourceexception Eliom_Session_expired
Sourceexception Eliom_Typing_Error of (string * exn) list

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

Sourceexception 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.

Sourceexception Cannot_call_this_function_before_app_is_linked_to_a_site

Statically linked app: You cannot call this function before Eliom_run.

Sourcetype full_state_name = {
  1. user_scope : user_scope;
  2. secure : bool;
  3. site_dir_str : string;
}

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

Sourceval eliom_service_session_expired : (full_state_name list * full_state_name list) Polytables.key

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

OCaml

Innovation. Community. Security.