SWISH::Prog::Cache - simple in-memory cache class


SWISH-Prog documentation Contained in the SWISH-Prog distribution.

Index


Code Index:

NAME

Top

SWISH::Prog::Cache - simple in-memory cache class

SYNOPSIS

Top

 use SWISH::Prog::Cache;
 my $cache = SWISH::Prog::Cache->new;
 $cache->add( foo => 'bar' );
 $cache->has( 'foo' ); # returns true
 $cache->get( 'foo' ); # returns 'bar'
 $cache->delete( 'foo' ); # removes 'foo' from cache and returns 'bar'

DESCRIPTION

Top

SWISH::Prog::Cache is a simple in-memory caching class. It's basically just a Perl hash, but implemented as a class so that you can subclass it and use different storage (e.g. Cache::* modules).

METHODS

Top

See SWISH::Prog::Class. Only new or overridden methods are documented here.

init

Initialize the cache. Called internally by new(). You should not need to call this yourself.

cache([ hash_ref ])

Get/set the internal in-memory cache. The default is just a hash ref. Subclasses are encouraged to implement their own storage.

has( key )

Does key exist in cache.

get( key )

Returns value for key. Returns undef if has( key ) is false.

delete( key )

Delete key from cache.

add( key => value )

Add key to cache with value value.

AUTHOR

Top

Peter Karman, <perl@peknet.com>

BUGS

Top

Please report any bugs or feature requests to bug-swish-prog at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=SWISH-Prog. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

Top

You can find documentation for this module with the perldoc command.

    perldoc SWISH::Prog




You can also look for information at:

* Mailing list

http://lists.swish-e.org/listinfo/users

* RT: CPAN's request tracker

http://rt.cpan.org/NoAuth/Bugs.html?Dist=SWISH-Prog

* AnnoCPAN: Annotated CPAN documentation

http://annocpan.org/dist/SWISH-Prog

* CPAN Ratings

http://cpanratings.perl.org/d/SWISH-Prog

* Search CPAN

http://search.cpan.org/dist/SWISH-Prog/

COPYRIGHT AND LICENSE

Top

SEE ALSO

Top

http://swish-e.org/


SWISH-Prog documentation Contained in the SWISH-Prog distribution.
package SWISH::Prog::Cache;
use strict;
use warnings;
use base qw( SWISH::Prog::Class );
__PACKAGE__->mk_accessors(qw( cache ));
use Carp;

our $VERSION = '0.51';

sub init {
    my $self = shift;
    $self->SUPER::init(@_);
    $self->{cache} ||= {};
}

sub has {
    my $self = shift;
    my $key  = shift;
    defined($key) or croak "key required";
    return exists $self->{cache}->{$key};
}

sub get {
    my $self = shift;
    my $key  = shift;
    defined($key) or croak "key required";
    return exists $self->{cache}->{$key} ? $self->{cache}->{$key} : undef;
}

sub delete {
    my $self = shift;
    my $key  = shift;
    defined($key) or croak "key required";
    delete $self->{cache}->{$key};
}

sub add {
    my $self = shift;
    my $key  = shift;
    my $val  = shift;
    defined($key) or croak "key required";
    $self->{cache}->{$key} = $val;
}

1;

__END__