Legend:
Library
Module
Module type
Parameter
Class
Class type
Library
Module
Module type
Parameter
Class
Class type
A session manager for Webmachine resources.
Webmachine resources should inherit this class and use its methods internally to query and modify session state.
method private session_of_rd : 'body Webmachine.Rd.t ->
(t option, Session.S.error) result io
#session_get rd
fetches and caches the session associated with rd
, if present and unexpired.
method private session_of_rd_or_create : ?expiry:period ->
value ->
'body Webmachine.Rd.t ->
t io
#session_get_or_create ?expiry value rd
fetches and caches the session associated with rd
. If the session is not present or expired, then a new session will be created and stored using expiry
and value
. Creating a new session will not modify rd
, but subsequent session calls for this resource will use the newly created, cached session.
method private session_set : ?expiry:period ->
value ->
'body Webmachine.Rd.t ->
unit io
#session_set ?expiry value rd
sets the value
for the session associated with rd
in the backend t
and sets the session to expire expiry
seconds from now. If expiry
is not provided, then expiry reported by default_period t
will be used instead.
method private session_clear : 'body Webmachine.Rd.t -> unit io
#clear rd
removes the session associated with rd
from the backend. If a session is cached, its value
and expiry_period
will be zero'd out, and the modified
flag will be set. Calling to_cookie_hdr
on a cleared session will generate the appropriate headers directing the client to clear the associated cookie.
method private session_set_hdrs : ?discard:bool ->
?path:string ->
?domain:string ->
?secure:bool ->
?http_only:bool ->
'body Webmachine.Rd.t ->
'body Webmachine.Rd.t
#session_set_hdrs rd
will generate response headers to communicate session changes or the clearing of the session to the client. This function takes into account the modified
field of the session type, and will not generate headers if they are not needed.