################################################################################### # # Apache::SessionX - Copyright (c) 1999-2001 Gerald Richter / ecos gmbh # Copyright(c) 1998, 1999 Jeffrey William Baker (jeffrey@kathyandjeffrey.net) # # You may distribute under the terms of either the GNU General Public # License or the Artistic License, as specified in the Perl README file. # # THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR # IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED # WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. # # $Id: Manager.pm,v 1.1 2002/03/12 08:50:32 richter Exp $ # ################################################################################### package Apache::SessionX::Manager ; use strict; use vars qw(@ISA $VERSION); $VERSION = '2.00b5'; use Apache::Session; use Apache::SessionX::Config ; sub new { my $class = shift; my $args = shift || {}; if(ref $args ne "HASH") { die "Additional arguments should be in the form of a hash reference"; } my $config = $args -> {config} || $Apache::SessionX::Config::default; foreach my $cfg (keys (%{$Apache::SessionX::Config::param{$config}})) { $args -> {$cfg} = $Apache::SessionX::Config::param{$config} -> {$cfg} if (!exists $args -> {$cfg}) ; } my $self = { args => $args, }; bless $self, $class; Apache::SessionX -> require_modules ($args) ; Apache::SessionX::populate ($self) ; return $self ; } sub count_sessions { my $self = shift; return $self->{object_store}->count_sessions($self); } sub first_session_id { my $self = shift; return $self->{object_store}->first_session_id($self); } sub next_session_id { my $self = shift; return $self->{object_store}->next_session_id($self); } sub first_session { my $self = shift; my %session ; my $id = $self -> first_session_id ; return undef if (!$id) ; tie %session, 'Apache::SessionX', $id, $self -> {args} ; return \%session ; } sub next_session { my $self = shift; my $id = $self -> next_session_id ; my %session ; return undef if (!$id) ; tie %session, 'Apache::SessionX', $id, $self -> {args} ; return \%session ; }