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

Module Eliom_state.Ext

module Ext : sig..end

exception Wrong_scope

Exception raised when you try to access a reference belonging to a scope different to the state's scope

type timeout =  | TGlobal(* <<div class="odocwiki_info"|see global setting
>> *) | TNone(* <<div class="odocwiki_info"|explicitly set no timeout
>> *) | TSome of float(* <<div class="odocwiki_info"|timeout duration in seconds
>> *)

Type used to describe session timeouts

These types are used to get or set information about browser or process cookies (like timeouts).

type (+'a, +'b) state

The type of states. The first parameter corresponds to the scope level and the second one to the kind of state (volatile or persistent data, or service state)

val volatile_data_group_state : 
  ?scope:Eliom_common.session_group_scope ->
  string -> ([> `Session_group ], [> `Data ]) state

volatile_data_group_state ~scope n returns the state corresponding to the group named n in scope scope.

val persistent_data_group_state : 
  ?scope:Eliom_common.session_group_scope ->
  string -> ([> `Session_group ], [> `Pers ]) state

Same for persistent data

val service_group_state : 
  ?scope:Eliom_common.session_group_scope ->
  string -> ([> `Session_group ], [> `Service ]) state

Same for services

val current_volatile_data_state : 
  ?secure:bool ->
  ?scope:Eliom_common.user_scope ->
  unit ->
  ([< Eliom_common.user_level ], [< `Data ]) state

current_volatile_data_state ~scope returns the state corresponding to scope scope. Raises Not_found if not connected or if no session group is set, or Eliom_common.Eliom_Session_expired if a cookie was present but expired.

val current_persistent_data_state : 
  ?secure:bool ->
  ?scope:Eliom_common.user_scope ->
  unit ->
  ([< Eliom_common.user_level ], [< `Pers ]) state Lwt.t

Same for persistent data

val current_service_state : 
  ?secure:bool ->
  ?scope:Eliom_common.user_scope ->
  unit ->
  ([< Eliom_common.user_level ], [< `Service ]) state

Same for services

val discard_state : 
  ?sitedata:Eliom_common.sitedata ->
  state:('a, 'b) state -> unit -> unit Lwt.t

Discard external states. See Eliom_state.Ext.fold_volatile_sub_states for explanation about the ?sitedata parameter.

val fold_volatile_sub_states : 
  ?sitedata:Eliom_common.sitedata ->
  state:([< `Session | `Session_group ], [< `Data | `Service ] as 'k)
   state ->
  ('a ->
   ([< `Client_process | `Session ], 'k) state -> 'a) ->
  'a -> 'a

Fold all sessions in a groups, or all client processes in a session. If you do not call the function during a request or during the initialisation phase of the Eliom module, you must provide the extra parameter ?sitedata, that you can get by calling Eliom_request_info.get_sitedata during the initialisation phase of the Eliom module.

val iter_volatile_sub_states : 
  ?sitedata:Eliom_common.sitedata ->
  state:([< `Session | `Session_group ], [< `Data | `Service ] as 'k)
   state ->
  (([< `Client_process | `Session ], 'k) state -> unit) ->
  unit

Iter on all sessions in a groups, or all client processes in a session. See Eliom_state.Ext.fold_volatile_sub_states for explanation about the ?sitedata parameter.

val fold_sub_states : 
  ?sitedata:Eliom_common.sitedata ->
  state:([< `Session | `Session_group ],
   [< `Data | `Pers | `Service ] as 'k)
   state ->
  ('a ->
   ([< `Client_process | `Session ], 'k) state ->
   'a Lwt.t) ->
  'a -> 'a Lwt.t

Fold all sessions in a groups, or all client processes in a session (volatile and persistent). See Eliom_state.Ext.fold_volatile_sub_states for explanation about the ?sitedata parameter.

val iter_sub_states : 
  ?sitedata:Eliom_common.sitedata ->
  state:([< `Session | `Session_group ], 'k) state ->
  (([< `Client_process | `Session ], 'k) state ->
   unit Lwt.t) ->
  unit Lwt.t

Iter on all sessions in a groups, or all client processes in a session (volatile and persistent). See Eliom_state.Ext.fold_volatile_sub_states for explanation about the ?sitedata parameter.

module Low_level : sig..end

Get the infomration about cookies (timeouts, etc.). See Eliom_state.Ext.fold_volatile_sub_states for explanation about the ?sitedata parameter.

See Eliom_state.Ext.fold_volatile_sub_states for explanation about the ?sitedata parameter.

val get_session_group_list : unit -> string list

Returns a list containing the names of all session group that are available for this site.

val iter_service_cookies : 
  (service_cookie_info -> unit Lwt.t) -> unit Lwt.t

Iterator on all active service cookies. Lwt.pause is called automatically after each iteration.

val iter_volatile_data_cookies : 
  (data_cookie_info -> unit Lwt.t) -> unit Lwt.t

Iterator on data cookies. Lwt.pause is called automatically after each iteration.

val iter_persistent_data_cookies : 
  (persistent_cookie_info -> unit Lwt.t) -> unit Lwt.t

Iterator on persistent cookies. Lwt.pause is called automatically after each iteration.

val fold_service_cookies : 
  (service_cookie_info -> 'b -> 'b Lwt.t) ->
  'b -> 'b Lwt.t

Iterator on service cookies. Lwt.pause is called automatically after each iteration.

val fold_volatile_data_cookies : 
  (data_cookie_info -> 'b -> 'b Lwt.t) -> 'b -> 'b Lwt.t

Iterator on data cookies. Lwt.pause is called automatically after each iteration.

val fold_persistent_data_cookies : 
  (persistent_cookie_info -> 'b -> 'b Lwt.t) ->
  'b -> 'b Lwt.t

Iterator on persistent cookies. Lwt.pause is called automatically after each iteration.