File: | C4/Cache/Memoize/Memcached.pm |
Coverage: | 57.1% |
line | stmt | bran | cond | sub | time | code |
---|---|---|---|---|---|---|
1 | package Koha::Cache::Memoize::Memcached; | |||||
2 | ||||||
3 | # Copyright 2009 Chris Cormack and The Koha Dev Team | |||||
4 | # | |||||
5 | # This file is part of Koha. | |||||
6 | # | |||||
7 | # Koha is free software; you can redistribute it and/or modify it under the | |||||
8 | # terms of the GNU General Public License as published by the Free Software | |||||
9 | # Foundation; either version 2 of the License, or (at your option) any later | |||||
10 | # version. | |||||
11 | # | |||||
12 | # Koha is distributed in the hope that it will be useful, but WITHOUT ANY | |||||
13 | # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR | |||||
14 | # A PARTICULAR PURPOSE. See the GNU General Public License for more details. | |||||
15 | # | |||||
16 | # You should have received a copy of the GNU General Public License along | |||||
17 | # with Koha; if not, write to the Free Software Foundation, Inc., | |||||
18 | # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. | |||||
19 | ||||||
20 | 1 1 1 | 20655 2 26 | use strict; | |||
21 | 1 1 1 | 5 1 34 | use warnings; | |||
22 | 1 1 1 | 36 1 80 | use Carp; | |||
23 | ||||||
24 | 1 1 1 | 15777 112436 24 | use Memoize::Memcached; | |||
25 | ||||||
26 | 1 1 1 | 158 35 131 | use base qw(C4::Cache); | |||
27 | ||||||
28 | sub _cache_handle { | |||||
29 | 0 | my $class = shift; | ||||
30 | 0 | my $params = shift; | ||||
31 | ||||||
32 | 0 | my @servers = split /,/, $params->{'cache_servers'}; | ||||
33 | ||||||
34 | 0 | my $memcached = { | ||||
35 | servers => \@servers, | |||||
36 | key_prefix => $params->{'namespace'} || 'koha', | |||||
37 | }; | |||||
38 | 0 | my $cache = {}; | ||||
39 | 0 | $cache->{memcache}=$memcached; | ||||
40 | 0 | return $cache; | ||||
41 | } | |||||
42 | ||||||
43 | sub memcached_memoize { | |||||
44 | 0 | my $self = shift; | ||||
45 | 0 | my $function = shift; | ||||
46 | 0 | my $ttl = shift; | ||||
47 | 0 | memoize_memcached($function, memcached => $self->{memcached}, expire_time => $ttl); | ||||
48 | } | |||||
49 | ||||||
50 | 1; |