| 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 | 2 2 2 | 73556 35 68 | use strict; | |||
| 21 | 2 2 2 | 17 9 121 | use warnings; | |||
| 22 | 2 2 2 | 14 9 160 | use Carp; | |||
| 23 | ||||||
| 24 | 2 2 2 | 113629 253228 46 | use Memoize::Memcached; | |||
| 25 | ||||||
| 26 | 2 2 2 | 357 44 303 | 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; | |||||