/usr/share/perl5/Email/MIME/CreateHTML/Resolver/Cached.pm is in libemail-mime-createhtml-perl 1.030-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 | ###############################################################################
# Purpose : Apply caching to another resolver
# Author : John Alden
# Created : Aug 2006
# CVS : $Header: /home/cvs/software/cvsroot/email/lib/Email/MIME/CreateHTML/Resolver/Cached.pm,v 1.4 2006/08/24 21:41:38 johna Exp $
###############################################################################
package Email::MIME::CreateHTML::Resolver::Cached;
use strict;
use Data::Serializer;
use URI::Escape;
use vars qw($VERSION);
$VERSION = sprintf "%d.%03d", q$Revision: 1.4 $ =~ /: (\d+)\.(\d+)/;
sub new {
my ($class, $args) = @_;
my $self = {
'Resolver' => $args->{resolver},
'Cache' => $args->{object_cache},
'base' => $args->{base},
};
return bless($self, $class);
}
sub get_resource {
my ($self, $uri) = @_;
my $args = {'uri' => $uri, 'base' => $self->{base}, 'resolver' => ref $self->{Resolver}};
my $key = join('&', map {$_ . '=' . URI::Escape::uri_escape($args->{$_})} grep {defined $args->{$_}} sort(keys %$args));
my $cache = $self->{Cache};
my $serialized = $cache->get( $key );
my $ds = Data::Serializer->new();
my @rv;
if ( defined $serialized ) {
my $deserialized = $ds->deserialize( $serialized );
@rv = @$deserialized;
}
else {
@rv = $self->{Resolver}->get_resource( $uri );
my $serialized = $ds->serialize( \@rv );
$cache->set( $key,$serialized );
}
return @rv;
}
1;
=head1 NAME
Email::MIME::CreateHTML::Resolver::Cached - wraps caching around a resource resolver
=head1 SYNOPSIS
my $o = new Email::MIME::CreateHTML::Resolver::Cached(\%args)
my ($content,$filename,$mimetype,$xfer_encoding) = $o->get_resource($uri)
=head1 DESCRIPTION
This is used by Email::MIME::CreateHTML to load resources.
=head1 METHODS
=over 4
=item $o = new Email::MIME::CreateHTML::Resolver::Cached(\%args)
%args can contain:
=over 4
=item base
Base URI to resolve URIs passed to get_resource.
=item object_cache (mandatory)
A cache object
=item resolver (mandatory)
Another resolver to apply caching to
=back
=item ($content,$filename,$mimetype,$xfer_encoding) = $o->get_resource($uri)
=back
=head1 VERSION
$Revision: 1.4 $ on $Date: 2006/08/24 21:41:38 $ by $Author: johna $
=head1 AUTHOR
Tony Hennessy, Simon Flack and John Alden
=head1 COPYRIGHT
(c) BBC 2005,2006. This program is free software; you can redistribute it and/or modify it under the GNU GPL.
See the file COPYING in this distribution, or http://www.gnu.org/licenses/gpl.txt
=cut
|