OpenFrame::WebApp::Session::Factory - a factory for various types of session


OpenFrame-WebApp documentation Contained in the OpenFrame-WebApp distribution.

Index


Code Index:

NAME

Top

OpenFrame::WebApp::Session::Factory - a factory for various types of session wrappers.

SYNOPSIS

Top

  use OpenFrame::WebApp::Session::Factory;

  my $sfactory = new OpenFrame::WebApp::Session::Factory()
    ->type( 'file_cache' )
    ->expiry( $period );  # optional

  my $session = $sfactory->new_session( @args );
  my $session = $sfactory->fetch_session( $id );

DESCRIPTION

Top

The OpenFrame::WebApp::Session::Factory class should be used to create sessions as needed. For convenience, it lets you specify a default session expiry period that is passed to all new sessions.

This class inherits its interface from OpenFrame::WebApp::Factory. It uses OpenFrame::WebApp::Session-types()> to resolve class names.

ADDITIONAL METHODS

Top

expiry()

set/get optional session expiry.

new_session( ... )

creates a new session wrapper of the appropriate session_type and sets its expiry() (if set). passes all arguments to the sessions' constructor.

fetch_session( $id )

fetches the session with the given $id. returns undef if not found.

AUTHOR

Top

Steve Purkis <spurkis@epn.nu>

COPYRIGHT

Top

SEE ALSO

Top

OpenFrame::WebApp::Factory, OpenFrame::WebApp::Session


OpenFrame-WebApp documentation Contained in the OpenFrame-WebApp distribution.
package OpenFrame::WebApp::Session::Factory;

use strict;
use warnings::register;

use OpenFrame::WebApp::Session;

our $VERSION = (split(/ /, '$Revision: 1.4 $'))[1];

use base qw ( OpenFrame::WebApp::Factory );

sub expiry {
    my $self = shift;
    if (@_) {
	$self->{session_expiry} = shift;
	return $self;
    } else {
	return $self->{session_expiry};
    }
}

sub get_types_class {
    my $self = shift;
    return OpenFrame::WebApp::Session->types->{$self->type};
}

sub new_session {
    my $self = shift;
    my $sess = $self->new_object();
    $sess->expiry( $self->expiry ) if ($self->expiry);
    return $sess;
}

sub fetch_session {
    my $self = shift;
    my $id   = shift;
    $self->load_types_class->fetch( $id );
}


1;

__END__