Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Cache::BaseCache(3)   User Contributed Perl Documentation  Cache::BaseCache(3)

NAME
       Cache::BaseCache	-- abstract cache base class

DESCRIPTION
       BaseCache provides functionality	common to all instances	of a cache.
       It differs from the CacheUtils package insofar as it is designed	to be
       used as superclass for cache implementations.

SYNOPSIS
       Cache::BaseCache	is to be used as a superclass for cache
       implementations.	 The most effective way	to use BaseCache is to use the
       protected _set_backend method, which will be used to retrieve the
       persistence mechanism.  The subclass can	then inherit the BaseCache's
       implementation of get, set, etc.	 However, due to the difficulty
       inheriting static methods in Perl, the subclass will likely need	to
       explicitly implement Clear, Purge, and Size.  Also, a factory pattern
       should be used to invoke	the _complete_initialization routine after the
       object is constructed.

	 package Cache::MyCache;

	 use vars qw( @ISA );
	 use Cache::BaseCache;
	 use Cache::MyBackend;

	 @ISA =	qw( Cache::BaseCache );

	 sub new
	 {
	   my (	$self )	= _new(	@_ );

	   $self->_complete_initialization( );

	   return $self;
	 }

	 sub _new
	 {
	   my (	$proto,	$p_options_hash_ref ) =	@_;
	   my $class = ref( $proto ) ||	$proto;
	   my $self = $class->SUPER::_new( $p_options_hash_ref );
	   $self->_set_backend(	new Cache::MyBackend( )	);
	   return $self;
	 }

	 sub Clear
	 {
	   foreach my $namespace ( _Namespaces(	) )
	   {
	     _Get_Backend( )->delete_namespace(	$namespace );
	   }
	 }

	 sub Purge
	 {
	   foreach my $namespace ( _Namespaces(	) )
	   {
	     _Get_Cache( $namespace )->purge( );
	   }
	 }

	 sub Size
	 {
	   my $size = 0;

	   foreach my $namespace ( _Namespaces(	) )
	   {
	     $size += _Get_Cache( $namespace )->size( );
	   }

	   return $size;
	 }

SEE ALSO
       Cache::Cache, Cache::FileCache, Cache::MemoryCache

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

       Last author:	$Author: dclinton $

       Copyright (C) 2001-2003 DeWitt Clinton

perl v5.32.1			  2015-01-22		   Cache::BaseCache(3)

NAME | DESCRIPTION | SYNOPSIS | SEE ALSO | AUTHOR

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Cache::BaseCache&sektion=3&manpath=FreeBSD+13.0-RELEASE+and+Ports>

home | help