Apache2-ASP
view release on metacpan or search on metacpan
lib/Apache2/ASP/ApplicationStateManager.pm view on Meta::CPAN
package Apache2::ASP::ApplicationStateManager;
use strict;
use warnings 'all';
use Storable qw( freeze thaw );
use DBI;
use Scalar::Util 'weaken';
use base 'Ima::DBI';
use Digest::MD5 'md5_hex';
#==============================================================================
sub new
{
my ($class, %args) = @_;
my $s = bless { }, $class;
my $conn = $s->context->config->data_connections->application;
local $^W = 0;
__PACKAGE__->set_db('Main', $conn->dsn,
$conn->username,
$conn->password
);
if( my $res = $s->retrieve )
{
return $res;
}
else
{
return $s->create;
}# end if()
}# end new()
#==============================================================================
sub context
{
$Apache2::ASP::HTTPContext::ClassName->current;
}# end context()
#==============================================================================
sub create
{
my $s = shift;
local $s->db_Main->{AutoCommit} = 1;
my $sth = $s->db_Main->prepare(<<"");
INSERT INTO asp_applications (
application_id,
application_data
)
VALUES (
?, ?
)
$sth->execute(
$s->context->config->web->application_name,
freeze( {} )
);
$sth->finish();
return $s->retrieve();
}# end create()
( run in 0.533 second using v1.01-cache-2.11-cpan-39bf76dae61 )