package eliom
Install
Dune Dependency
Authors
Maintainers
Sources
md5=c8c67fe5fb8d3f44a3b17cc4a93a0e62
sha512=e58557a1b525efd011e0eb539b112b53e6c012ac3fb2153c251be030eda483dd3b19de625707cf5ffebd97fa6a7fabfb8a6aae8e8a61c79e0bd7ad2d289df9a9
doc/eliom.server/Eliom_reference/index.html
Module Eliom_reference
Source
Server side state data, a.k.a Eliom references
Please read the <<a_manual chapter="server-state" | Eliom manual >>
before this page to learn how server side state works.
Eliom references come in two flavors: they may be stored persistently or the may be volatile. The module Volatile
allows creation of references which can be, get, set, modify, and unset volatile references through non-Lwt functions.
The type of Eliom references whose content is of type 'a
.
Exception raised when trying to access an eref that has not been initaliazed, when we don't want to initialize it.
val eref :
scope:[< Eliom_common.all_scope ] ->
?secure:bool ->
?persistent:string ->
'a ->
'a eref
The function eref ~scope value
creates an Eliom reference for the given scope
and initialize it with value
. See the Eliom manual for more information about <<a_manual
chapter="server-state"|scopes>>
.
Use the optional parameter ?persistent
if you want the data to survive after relaunching the server. You must give an unique name to the table in which it will be stored on the hard disk (using Ocsipersist). Be very careful to use unique names, and to change the name if you change the type of the data, otherwise the server may crash (unsafe unmarshaling). This parameter has no effect for scope Eliom_common.request_scope
.
Use the optional parameter ~secure:true
if you want the data to be available only using HTTPS. This parameter has no effect for scopes Eliom_common.global_scope
, Eliom_common.site_scope
, and Eliom_common.request_scope
. The default is false
, but this default can be changed in configuration file (<securecookies value="true"/>
). This option can be placed as global Eliom option (inside the <extension>
tag which is loading Eliom), or in the local configuration of one site (inside the <eliom>
tag). But in the latter case, it will only have effect on the actions performed after in the same <site>
(and NOT on the top-level instructions of the modules loaded before).
Warning: Eliom references of scope Eliom_common.global_scope
, Eliom_common.site_scope
or Eliom_common.request_scope
may be created at any time ; but for other scopes, they must be created when the site information is available to Eliom, that is, either during the initialization phase of the server (while reading the configuration file) or during a request. Otherwise, it will raise the exception Eliom_common.Eliom_site_information_not_available
. If you are using static linking, you must delay the call to this function until the configuration file is read, using Eliom_service.register_eliom_module
. Otherwise you will also get this exception.
val eref_from_fun :
scope:[< Eliom_common.all_scope ] ->
?secure:bool ->
?persistent:string ->
(unit -> 'a) ->
'a eref
The function eref_from_fun
works like the above Eliom_reference.eref
, but instead of providing a value for the initial content, a function f
for creating the initial content is provided (cf. also Lazy.from_fun
).
In each scope, the function f
is called for creating the value of the reference the first time the reference is read (by Eliom_reference.get
), if the value has not been set explicitly before (by Eliom_reference.set
).
The function get eref
returns the current value of the Eliom reference eref
.
Warning: this function cannot be used outside of a service handler when eref
has been created with a scope different of Eliom_common.global_scope
; it can neither be used outside of an Eliom module when eref
has been created with scope Eliom_common.site_scope
The function set eref v
set v
as current value of the Eliom reference eref
.
Warning: this function could not be used outside af a service handler when eref
has been created with a scope different of Eliom_common.global_scope
; it can neither be used outside of an Eliom module when eref
has been created with scope Eliom_common.site_scope
The function modify eref f
modifies the content of the Eliom reference eref
by applying the function f
on it.
Warning: this function could not be used outside af a service handler when eref
has been created with a scope different of Eliom_common.global_scope
; it can neither be used outside of an Eliom module when eref
has been created with scope Eliom_common.site_scope
The function unset eref
reset the content of the Eliom reference eref
to its initial value.
Warning: this function could not be used outside af a service handler when eref
has been created with a scope different of Eliom_common.global_scope
; it can neither be used outside of an Eliom module when eref
has been created with scope Eliom_common.site_scope
Same functions as in Eliom_reference
but a non-Lwt interface for non-persistent Eliom references.
This module allows access to references for other groups, sessions, or client processes. Use it in conjunction with functions like Eliom_state.Ext.iter_sub_states
to get the sessions from a group (or the processes from a session).