[perl-cache commit] r562 - namespace problem solved

Visto 0 veces
Saltar al primer mensaje no leído

codesite...@google.com

no leída,
17 mar 2009, 23:59:3517/3/09
a perl-cach...@googlegroups.com
Author: phar...@gmail.com
Date: Tue Mar 17 20:58:05 2009
New Revision: 562

Modified:
mma-driver/lib/CHI/Driver/MMA.pm

Log:
namespace problem solved

Modified: mma-driver/lib/CHI/Driver/MMA.pm
==============================================================================
--- mma-driver/lib/CHI/Driver/MMA.pm (original)
+++ mma-driver/lib/CHI/Driver/MMA.pm Tue Mar 17 20:58:05 2009
@@ -8,7 +8,8 @@
use File::Spec::Functions qw(catdir tmpdir);
use Carp qw(croak);

-our $VERSION = '1.0';
+our $VERSION = '1.0';
+our $SEPARATOR = "\032";

extends 'CHI::Driver';

@@ -146,7 +147,8 @@
sub fetch {
my ( $self, $key, ) = @_;

- return mm_hash_fetch( $self->hash(), $key );
+ return mm_hash_fetch( $self->hash(),
+ join( $SEPARATOR, $self->namespace(), $key ) );
}

=item store
@@ -156,7 +158,8 @@
sub store {
my ( $self, $key, $data, ) = @_;

- return mm_hash_store( $self->hash(), $key, $data );
+ return mm_hash_store( $self->hash(),
+ join( $SEPARATOR, $self->namespace(), $key ), $data );
}

=item remove
@@ -166,7 +169,8 @@
sub remove {
my ( $self, $key, ) = @_;

- return mm_hash_delete( $self->hash(), $key );
+ return mm_hash_delete( $self->hash(),
+ join( $SEPARATOR, $self->namespace(), $key ) );
}

=item clear
@@ -187,11 +191,15 @@
my ( $self, ) = @_;

my @keys;
- my $hash = $self->hash();
+ my $hash = $self->hash();
+ my $namespace = $self->namespace();
+
for ( my $i = 0 ; $i < mm_hash_scalar($hash) ; $i++ ) {
my $key = ( mm_hash_get_entry( $hash, $i ) )[0];
if ( !defined $key ) { last }
- push @keys, $key;
+ my ( $key_namespace, $real_key ) = split( $SEPARATOR, $key );
+ next if $key_namespace ne $namespace;
+ push @keys, $real_key;
}

return @keys;

Responder a todos
Responder al autor
Reenviar
0 mensajes nuevos