| Line 0
          
      
      
        Link Here | 
            
              |  |  | 1 | package Koha::Cache::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 | use strict; | 
            
              | 21 | use warnings; | 
            
              | 22 | use Carp; | 
            
              | 23 |  | 
            
              | 24 | use Cache::Memcached; | 
            
              | 25 |  | 
            
              | 26 | use base qw(Koha::Cache); | 
            
              | 27 |  | 
            
              | 28 | sub _cache_handle { | 
            
              | 29 |     my $class  = shift; | 
            
              | 30 |     my $params = shift; | 
            
              | 31 |     my @servers = split /,/, $params->{'cache_servers'}; | 
            
              | 32 |     return Cache::Memcached->new( | 
            
              | 33 |         servers   => \@servers, | 
            
              | 34 |         namespace => $params->{'namespace'} || 'KOHA', | 
            
              | 35 |     ); | 
            
              | 36 | } | 
            
              | 37 |  | 
            
              | 38 | sub set_in_cache { | 
            
              | 39 |     my ( $self, $key, $value, $expiry ) = @_; | 
            
              | 40 |     croak "No key" unless $key; | 
            
              | 41 |     $self->cache->set_debug; | 
            
              | 42 |  | 
            
              | 43 |     if ( defined $expiry ) { | 
            
              | 44 |         return $self->cache->set( $key, $value, $expiry ); | 
            
              | 45 |     } | 
            
              | 46 |     else { | 
            
              | 47 |         return $self->cache->set( $key, $value ); | 
            
              | 48 |     } | 
            
              | 49 | } | 
            
              | 50 |  | 
            
              | 51 | sub get_from_cache { | 
            
              | 52 |     my ( $self, $key ) = @_; | 
            
              | 53 |     croak "No key" unless $key; | 
            
              | 54 |     return $self->cache->get($key); | 
            
              | 55 | } | 
            
              | 56 |  | 
            
              | 57 | sub clear_from_cache { | 
            
              | 58 |     my ( $self, $key ) = @_; | 
            
              | 59 |     croak "No key" unless $key; | 
            
              | 60 |     return $self->cache->delete($key); | 
            
              | 61 | } | 
            
              | 62 |  | 
            
              | 63 | sub flush_all { | 
            
              | 64 |     my $self = shift; | 
            
              | 65 |     return $self->cache->flush_all; | 
            
              | 66 | } | 
            
              | 67 |  | 
            
              | 68 | 1; | 
            
              | 69 | __END__                                                                          | 
            
              | 70 |                                                                                    | 
            
              | 71 | =head1 NAME | 
            
              | 72 |  | 
            
              | 73 | C4::Cache::Memcached - memcached subclass of C4::Cache | 
            
              | 74 |  | 
            
              | 75 | =cut |