NAME

Scaffold::Cache - A base class for Cache Management in Scaffold

SYNOPSIS

my $server = Scaffold::Server->new(
    cache => Scaffold::Cache::FastMmap->new(
       namespace => 'scaffold',
   ),
);

DESCRIPTION

The Scaffold environment uses caching by default. If no "cache" engine is defined, it will use Scaffold::Cache::FastMmap with reasonable, built in defaults. The caching subsystem is used by several of the Scaffold modules. This is done for performance reasons. i.e. it is usaully faster to load stuff from cache then to read it from disk.

Scaffold provides two caching engines, they are Scaffold::Cache::FastMmap and Scaffold::Cache::Memcached.

Since these caching systems use a flat, shared environment, with key, value pairs for data storarge and retrieval, a "namespace" is defined to help differated the "key" from other similar keys. This name space can be used to define a flat naming scheme or even a hirearchal scheme, the choice is yours. The "namespace" is prepended to the "key", so a key of "junk" would be presented to the caching system as "scaffold:junk".

METHODS

get

This method will retrieve the "value" associated with "key".

$value = $self->scaffold->cache->get('junk');
set

This method will store the "value" associated with "key".

$self->scaffold->cache->set('junk', $value);
delete

This method will delete the "key" from the caching system.

$self->scaffold->cache->delete('junk');
update

This method will update the "value" associated with "key". Most of the caching systems do this in a "atomic" fashion.

$self->scaffold->cache->update('junk', $newvalue);
clear

This method will clear all items from the cache. Use with care.

$self->scaffold->cache->clear();
purge

This method will purge expired items out of the cache.

$self->scaffold->cache->purge();
namespace

This method will get/set the current namespace for cache operations.

$namespace = $self->scaffold->cache->namespace;
$self->scaffold->cache->namespace($namespace);

SEE ALSO

Cache::FastMmap
Cache::Memcached

Scaffold
Scaffold::Base
Scaffold::Cache
Scaffold::Cache::FastMmap
Scaffold::Cache::Manager
Scaffold::Cache::Memcached
Scaffold::Class
Scaffold::Constants
Scaffold::Engine
Scaffold::Handler
Scaffold::Handler::Default
Scaffold::Handler::Favicon
Scaffold::Handler::Robots
Scaffold::Handler::Static
Scaffold::Lockmgr
Scaffold::Lockmgr::KeyedMutex
Scaffold::Lockmgr::UnixMutex
Scaffold::Plugins
Scaffold::Render
Scaffold::Render::Default
Scaffold::Render::TT
Scaffold::Server
Scaffold::Session::Manager
Scaffold::Stash
Scaffold::Stash::Controller
Scaffold::Stash::Cookie
Scaffold::Stash::View
Scaffold::Uaf::Authenticate
Scaffold::Uaf::AuthorizeFactory
Scaffold::Uaf::Authorize
Scaffold::Uaf::GrantAllRule
Scaffold::Uaf::Login
Scaffold::Uaf::Logout
Scaffold::Uaf::Manager
Scaffold::Uaf::Rule
Scaffold::Uaf::User
Scaffold::Utils

AUTHOR

Kevin L. Esteb, <kesteb@wsipc.org>

COPYRIGHT AND LICENSE

Copyright (C) 2009 by Kevin L. Esteb

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.5 or, at your option, any later version of Perl 5 you may have available.