Cache::SizeAwareCache - extends the Cache interface.


Cache-Cache documentation Contained in the Cache-Cache distribution.

Index


Code Index:

NAME

Top

Cache::SizeAwareCache -- extends the Cache interface.

DESCRIPTION

Top

The SizeAwareCache interface is implemented by classes that support all of the Cache::Cache interface in addition to the limit_size and max_size features of a size aware cache.

The default cache size limiting algorithm works by removing cache objects in the following order until the desired limit is reached:

  1) objects that have expired
  2) objects that are least recently accessed
  3) objects that that expire next

SYNOPSIS

Top

  use Cache::SizeAwareCache;
  use vars qw( @ISA );

  @ISA = qw( Cache::SizeAwareCache );

CONSTANTS

Top

Please see Cache::Cache for standard constants

$NO_MAX_SIZE

The cache has no size restrictions

METHODS

Top

Please see Cache::Cache for the standard methods

limit_size( $new_size )

Attempt to resize the cache such that the total disk usage is under the $new_size parameter. $new_size represents t size (in bytes) that the cache should be limited to. Note that this is only a one time adjustment. To maintain the cache size, consider using the max_size option, although it is considered very expensive, and can often be better achieved by peridocally calling limit_size.

OPTIONS

Top

Please see Cache::Cache for the standard options

max_size

Sets the max_size property (size in bytes), which is described in detail below. Defaults to $NO_MAX_SIZE.

PROPERTIES

Top

Please see Cache::Cache for standard properties

(get|set)_max_size

If this property is set, then the cache will try not to exceed the max size value (in bytes) specified. NOTE: This causes the size of the cache to be checked on every set, and can be considered *very* expensive in some implementations. A good alternative approach is leave max_size as $NO_MAX_SIZE and to periodically limit the size of the cache by calling the limit_size( $size ) method.

SEE ALSO

Top

Cache::Cache

AUTHOR

Top

Original author: DeWitt Clinton <dewitt@unto.net>

Last author: $Author: dclinton $

Copyright (C) 2001-2003 DeWitt Clinton


Cache-Cache documentation Contained in the Cache-Cache distribution.

######################################################################
# $Id: SizeAwareCache.pm,v 1.10 2002/04/07 17:04:46 dclinton Exp $
# Copyright (C) 2001-2003 DeWitt Clinton  All Rights Reserved
#
# Software distributed under the License is distributed on an "AS
# IS" basis, WITHOUT WARRANTY OF ANY KIND, either expressed or
# implied. See the License for the specific language governing
# rights and limitations under the License.
######################################################################


package Cache::SizeAwareCache;


use strict;
use Cache::Cache;
use vars qw( @ISA @EXPORT_OK $EXPIRES_NOW $EXPIRES_NEVER $NO_MAX_SIZE );
use Exporter;

@ISA = qw( Cache::Cache Exporter );

@EXPORT_OK = qw( $EXPIRES_NOW $EXPIRES_NEVER $NO_MAX_SIZE );

$EXPIRES_NOW = $Cache::Cache::EXPIRES_NOW;
$EXPIRES_NEVER = $Cache::Cache::EXPIRES_NEVER;
$NO_MAX_SIZE = -1;


sub limit_size;

sub get_max_size;

sub set_max_size;


1;


__END__