MasonX::Request::WithMultiSession |
NAME ![]() |
MasonX::Request::WithMultiSession - Multiple sub-sessions within one ``parent'' session
SYNOPSIS ![]() |
![]() |
PerlSetVar MasonRequestClass MasonX::Request::WithMultiSession
DESCRIPTION ![]() |
![]() |
This module subclasses MasonX::Request::WithApacheSession
in order
to allow multiple ``sub-sessions'' to exist within one parent session.
This can be quite useful for a web app where you want to allow the user to open multiple windows, each with a different session, but session ids are stored in a cookie.
Like MasonX::Request::WithApacheSession
, sub-sessions are shared
between a request and any subrequests it creates.
METHODS ![]() |
![]() |
This class has an interface quite similar to that of
MasonX::Request::WithApacheSession
.
session()
method. When this method is called without any parameters, the module
looks for an existing sub-session specified by the sub-session id
argument parameter (which can be in a query string or POST). This
value can be overridden by explicitly passing a ``sub_session_id''
parameter.
If this parameter is found, an existing sub-session is returned. If this parameter is not found, a new sub-session is created.
If the session()
method is called as session( clone => 1 )
then a new sub-session will be created, and its contents will be the
same as that of the current sub-session. This is a shallow copy of
the old session hash, so objects and references are shared between
them.
If session( new => 1 )
is called, then a new, empty,
sub-session is created.
You can specify the main session id to use via the ``session_id'' parameter.
If given a ``sub_session_id'' parameter, it will set the current sub-session id.
Parameters ![]() |
![]() |
This module takes two parameters besides those inherited from
MasonX::Request::WithApacheSession
:
Sub-sessions expiration is checked when the request object goes out of scope.
USAGE ![]() |
![]() |
You will need to manually set the sub-session id argument parameter
for each request. The easiest way to do this is to make sure that all
URLs contain the sub-session id. This can be done by using a <
<%filter
>> block in a top-level autohandler (although this won't
catch redirects), or by making sure all URLs are generated by a single
component/function.
SUPPORT ![]() |
![]() |
Bug reports and requests for help should be sent to the mason-users list. See http://www.masonhq.com/resources/mailing_lists.html for more details.
AUTHOR ![]() |
![]() |
Dave Rolsky, <autarch@urth.org>
Development funded by Marigold Technologies.
SEE ALSO ![]() |
![]() |
HTML::Mason
MasonX::Request::WithMultiSession |