All pastes #49323 Raw Edit

Unnamed

public text v1 · immutable
#49323 ·published 2006-04-14 06:34 UTC
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;