X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=perl%2FAmanda%2FConfig%2FFoldingHash.pm;fp=perl%2FAmanda%2FConfig%2FFoldingHash.pm;h=c105071c4e0bf2cb134a97ebbcf98516680436fd;hb=538ae376635af705ebcd686f3b4b7b72a6652985;hp=0000000000000000000000000000000000000000;hpb=11425c69eb58b6103beb68adc13912735ba36975;p=debian%2Famanda diff --git a/perl/Amanda/Config/FoldingHash.pm b/perl/Amanda/Config/FoldingHash.pm new file mode 100644 index 0000000..c105071 --- /dev/null +++ b/perl/Amanda/Config/FoldingHash.pm @@ -0,0 +1,48 @@ +package Amanda::Config::FoldingHash; +use Tie::Hash; +use base 'Tie::StdHash'; +use Amanda::Config; +use Amanda::Debug; + +use strict; +use warnings; + +sub new { + my ($class) = @_; + + my %self; + tie(%self, $class); + return \%self; +} + +sub _amandaify { + return Amanda::Config::amandaify_property_name(@_); +} + +sub TIEHASH { + my ($class) = @_; + return bless({}, $class); +} + +sub FETCH { + my ($self, $key) = @_; + my $am = _amandaify($key); + return $self->{_amandaify($key)}; +} + +sub STORE { + my ($self, $key, $value) = @_; + return $self->{_amandaify($key)} = $value; +} + +sub EXISTS { + my ($self, $key) = @_; + return exists($self->{_amandaify($key)}); +} + +sub DELETE { + my ($self, $key) = @_; + return delete($self->{_amandaify($key)}); +} + +1;