Concierge-Sessions
view release on metacpan or search on metacpan
lib/Concierge/Sessions/Base.pm view on Meta::CPAN
package Concierge::Sessions::Base v0.11.0;
use v5.36;
use Crypt::PRNG qw(random_bytes);
sub new {
my ($class, %args) = @_;
return bless {}, $class;
}
# Define interface methods that must be implemented by subclasses
sub create_session { die "Subclass must implement create_session" }
sub get_session_info { die "Subclass must implement get_session_info" }
sub update_session { die "Subclass must implement update_session" }
sub delete_session { die "Subclass must implement delete_session" }
sub cleanup_sessions { die "Subclass must implement cleanup_sessions" }
sub delete_user_session { die "Subclass must implement delete_user_session" }
# Utilities
sub generate_session_id {
return unpack('H*', random_bytes(20));
}
1;
__END__
=head1 NAME
Concierge::Sessions::Base - Base class for session storage backends
=head1 VERSION
v0.9.0
=head1 SYNOPSIS
# This is a base class - do not use directly
# Backend implementations inherit from this class:
package Concierge::Sessions::MyBackend;
use parent 'Concierge::Sessions::Base';
sub create_session {
my ($self, %args) = @_;
# Implementation...
}
# Implement other required methods...
=head1 DESCRIPTION
Concierge::Sessions::Base is a base class that defines the interface for
session storage backends. Backend implementations (SQLite, File) inherit
from this class and must implement the defined methods.
This class also provides utility methods such as generate_session_id().
Users typically do not interact with this class directly - they use
Concierge::Sessions which manages backend objects internally.
=head1 REQUIRED METHODS
Backend implementations must implement the following methods:
=head2 create_session
Creates a new session in the backend storage.
my $result = $backend->create_session(
user_id => 'user123',
session_timeout => 3600,
data => \%session_data,
);
( run in 1.118 second using v1.01-cache-2.11-cpan-39bf76dae61 )