Name

File::DataClass::Cache - Adds extra methods to the CHI API

Version

0.2.$Revision: 234 $

Synopsis

package File::DataClass::Schema;

use File::DataClass::Cache;
use Moose;

extends qw(File::DataClass);
with    qw(File::DataClass::Constraints);

has 'cache'            => is => 'ro', isa => 'F_DC_Cache',
   lazy_build          => TRUE;

has 'cache_attributes' => is => 'ro', isa => 'HashRef',
   default             => sub { return {} };

sub _build_cache {
   my $self  = shift;

   $self->Cache and return $self->Cache;

   my $attrs = {}; (my $ns = lc __PACKAGE__) =~ s{ :: }{-}gmx;

   $attrs->{cache_attributes}                = $self->cache_attributes;
   $attrs->{cache_attributes}->{driver   } ||= q(FastMmap);
   $attrs->{cache_attributes}->{root_dir } ||= NUL.$self->tempdir;
   $attrs->{cache_attributes}->{namespace} ||= $ns;

   return $self->Cache( File::DataClass::Cache->new( $attrs ) );
}

Description

Adds meta data and compound keys to the CHI caching API. In instance of this class is created by File::DataClass::Schema

Configuration and Environment

The class defines these attributes

cache

An instance of the CHI cache object

cache_attributes

A hash ref passed to the CHI constructor

cache_class

The class name of the cache object, defaults to CHI

Subroutines/Methods

get

($data, $meta) = $schema->cache->get( $key );

Returns the data and metadata associated with the given key. If no cache entry exists the data returned is undef and the metadata is a hash ref with a key of mtime and a value of 0

get_by_paths

($data, $meta, $newest) = $schema->cache->get_by_paths( $paths );

The paths passed in the array ref are concatenated to form a compound key. The CHI cache entry is fetched and the data and meta data returned along with the modification time of the newest file in the list of paths

remove

$schema->cache->remove( $key );

Removes the CHI cache entry for the given key

set

($data, $meta) = $schema->cache->set( $key, $data, $meta );

Sets the CHI cache entry for the given key

set_by_paths

($data, $meta) = $schema->cache->set_by_paths( $paths, $data, $meta );

Set the CHI cache entry for the compound key formed from the array ref $paths

Diagnostics

None

Dependencies

CHI

Incompatibilities

There are no known incompatibilities in this module

Bugs and Limitations

There are no known bugs in this module. Please report problems to the address below. Patches are welcome

Acknowledgements

Larry Wall - For the Perl programming language

Author

Peter Flanigan, <Support at RoxSoft.co.uk>

License and Copyright

Copyright (c) 2010 Peter Flanigan. All rights reserved

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See perlartistic

This program is distributed in the hope that it will be useful, but WITHOUT WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE