/usr/local/CPAN/Data-Fallback/Data/Fallback/Memory.pm


#!/usr/bin/perl -w

# set session - item
# set session - content

# set - item
# set - content

package Data::Fallback::Memory;

use strict;

use Data::Fallback;
use vars qw(@ISA);
@ISA = qw(Data::Fallback);

sub get_memory_cache_key {
  my $self = shift;
  return $self->get_cache_key('primary_key') . "-" . $self->{item};
}

sub _GET {
  my $self = shift;
  my $return = 0;
  my ($found_in_cache, $content) = 
    $self->check_cache('Memory', 'item', $self->get_memory_cache_key);

  if($found_in_cache) {
    # already set in $content, so we're done
    $self->{update}{item} = $content;
    $return = 1;
  }
  return $return;
}

sub SET_ITEM {
  my $self = shift;
  my ($key, $value) = ($self->get_memory_cache_key, $self->{update}{item});
  die "need a \$self->{list_name}" unless( (defined $self->{list_name}) && length $self->{list_name});
  die "need a \$key" unless( (defined $key) && length $key);
  die "need a \$value" unless( (defined $value) && length $value);

  return $self->set_cache('Memory', 'item', $key, $value);
}

sub SET_GROUP {
  my $self = shift;

  # can't really set a group in Memory, since the content name is different
  # at each driver level

  return 1;
}

1;