Initial import

This commit is contained in:
Lucas Gabriel Vuotto 2025-04-26 09:41:50 +00:00
commit dd492db92e
37 changed files with 1953 additions and 0 deletions

View file

@ -0,0 +1,40 @@
package Pooru::Storage::Static;
use v5.40;
use parent "Pooru::Storage";
use Storable qw(lock_store lock_retrieve);
sub new ($class, $file, $prefix = "")
{
my $self = $class->SUPER::new;
$self->{_file} = $file;
$self->{_prefix} = $prefix;
if (-f $file) {
$self->{_store} = lock_retrieve($file);
} else {
$self->{_store} = {
_last_id => 0,
_entries => {},
};
}
return $self;
}
sub get ($self, $id)
{
my $entry = $self->{_store}->{_entries}->{$id};
return (defined($entry) and "$self->{_prefix}$entry->{name}");
}
sub put ($self, $name)
{
my $id = ++$self->{_store}->{_last_id};
$self->{_store}->{_entries}->{$id} = {
name => $name,
};
return (lock_store($self->{_store}, $self->{_file}) and $id);
}