###################################################################################
#
# 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 ;
}