rendered paste body#!/usr/bin/perl
use strict;
use warnings ;
###############################################################################
package ChimeFault::EventCache;
# return an empty ring structure
sub new {
my $class = shift;
my $self = bless {}, $class;
$self->{cache} = {} ;
return $self;
}
sub entriesdata {
my ($self,$event) = @_;
unless (defined $self->{cache}->{$event}->{entries}) {
@{$self->{cache}->{$event}->{entries}} = $event->entries;
}
return @{$self->{cache}->{$event}->{entries}};
}
package ChimeFault::Event ;
sub new {
my $class = shift;
my $self = bless {}, $class ;
$self->{id} = shift ;
print "new event " . $self->{id} . "\n" ;
return $self ;
}
sub faultid {
my $self = shift ;
return $self->{id} ;
}
sub entries {
my $self= shift ;
print "doing lookup for event " . $self->{id} . "\n" ;
return ($self->{id} .. 5) ;
}
package main ;
use Data::Dumper ;
my $cache = new ChimeFault::EventCache ;
my $event = new ChimeFault::Event(1) ;
my $event2 = new ChimeFault::Event(2) ;
print Dumper($cache->entriesdata($event)) ;
print Dumper ($cache->entriesdata($event) ) ;
print Dumper($cache->entriesdata($event2)) ;
1;