bug 3651 followup: updated for new GetMember() parameter style
[koha.git] / C4 / Cache / Memcached.pm
1 package C4::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 with                                                                 
17 # Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place,                                                                  
18 # Suite 330, Boston, MA  02111-1307 USA    
19
20 use strict;
21 use warnings;
22 use Carp;
23
24 use Cache::Memcached;
25
26 use base qw(C4::Cache);
27
28 sub _cache_handle {
29     my $class  = shift;
30     my $params = shift;
31
32     my @servers = split /,/, $params->{'cache_servers'};
33
34     return Cache::Memcached->new(
35         servers   => \@servers,
36         namespace => $params->{'namespace'} || 'KOHA',
37     );
38 }
39
40 sub set_in_cache {
41     my ( $self, $key, $value, $expiry ) = @_;
42     croak "No key" unless $key;
43
44     if ( defined $expiry ) {
45         return $self->cache->set( $key, $value, $expiry );
46     }
47     else {
48         return $self->cache->set( $key, $value );
49     }
50 }
51
52 sub get_from_cache {
53     my ( $self, $key ) = @_;
54     croak "No key" unless $key;
55     return $self->cache->get($key);
56 }
57
58 sub clear_from_cache {
59     my ( $self, $key ) = @_;
60     croak "No key" unless $key;
61     return $self->cache->delete($key);
62 }
63
64 sub flush_all {
65     my $self = shift;
66     return $self->cache->flush_all;
67 }
68
69 1;
70 __END__                                                                         
71                                                                                   
72 =head1 NAME                                                                     
73                                                                                 
74   C4::Cache::Memcached - memcached subclass of C4::Cache                
75                                                                                   
76 =cut