Initial import
This commit is contained in:
commit
dd492db92e
37 changed files with 1953 additions and 0 deletions
40
lib/Pooru/Storage/Static.pm
Normal file
40
lib/Pooru/Storage/Static.pm
Normal 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);
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue