/[Redis.pre-github]/lib/Redis.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /lib/Redis.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 21 by dpavlin, Sun Mar 22 10:36:22 2009 UTC revision 27 by dpavlin, Sun Mar 22 13:44:19 2009 UTC
# Line 77  sub _sock_result_bulk { Line 77  sub _sock_result_bulk {
77          _sock_read_bulk();          _sock_read_bulk();
78  }  }
79    
80  sub _sock_ok {  sub __sock_ok {
81          my $ok = <$sock>;          my $ok = <$sock>;
82          confess dump($ok) unless $ok eq "+OK\r\n";          confess dump($ok) unless $ok eq "+OK\r\n";
83  }  }
# Line 93  sub _sock_send_ok { Line 93  sub _sock_send_ok {
93          my $self = shift;          my $self = shift;
94          warn "## _sock_send_ok ",dump( @_ );          warn "## _sock_send_ok ",dump( @_ );
95          print $sock join(' ',@_) . "\r\n";          print $sock join(' ',@_) . "\r\n";
96          _sock_ok();          __sock_ok();
97    }
98    
99    sub __sock_send_bulk_raw {
100            my $self = shift;
101            warn "## _sock_send_bulk ",dump( @_ );
102            my $value = pop;
103            print $sock join(' ',@_) . ' ' . length($value) . "\r\n$value\r\n";
104  }  }
105    
106  sub _sock_send_bulk {  sub _sock_send_bulk {
107          my ( $self, $command, $key, $value ) = @_;          __sock_send_bulk_raw( @_ );
108          print $sock "$command $key " . length($value) . "\r\n$value\r\n";          __sock_ok();
         _sock_ok();  
109  }  }
110    
111    sub _sock_send_bulk_number {
112            __sock_send_bulk_raw( @_ );
113            my $v = _sock_result();
114            confess $v unless $v =~ m{^\-?\d+$};
115            return $v;
116    }
117    
118  =head1 Connection Handling  =head1 Connection Handling
119    
# Line 315  sub lrange { Line 327  sub lrange {
327          return @list;          return @list;
328  }  }
329    
330    =head2 ltrim
331    
332      my $ok = $r->ltrim( $key, $start, $end );
333    
334    =cut
335    
336    sub ltrim {
337            my ( $self, $key, $start, $end ) = @_;
338            $self->_sock_send_ok( 'LTRIM', $key, $start, $end );
339    }
340    
341    =head2 lindex
342    
343      $r->lindex( $key, $index );
344    
345    =cut
346    
347    sub lindex {
348            my ( $self, $key, $index ) = @_;
349            $self->_sock_result_bulk( 'LINDEX', $key, $index );
350    }
351    
352    =head2 lset
353    
354      $r->lset( $key, $index, $value );
355    
356    =cut
357    
358    sub lset {
359            my ( $self, $key, $index, $value ) = @_;
360            $self->_sock_send_bulk( 'LSET', $key, $index, $value );
361    }
362    
363    =head2 lrem
364    
365      my $modified_count = $r->lrem( $key, $count, $value );
366    
367    =cut
368    
369    sub lrem {
370            my ( $self, $key, $count, $value ) = @_;
371            $self->_sock_send_bulk_number( 'LREM', $key, $count, $value );
372    }
373    
374    =head2 lpop
375    
376      my $value = $r->lpop( $key );
377    
378    =cut
379    
380    sub lpop {
381            my ( $self, $key ) = @_;
382            $self->_sock_result_bulk( 'lpop', $key );
383    }
384    
385    =head2 rpop
386    
387      my $value = $r->rpop( $key );
388    
389    =cut
390    
391    sub rpop {
392            my ( $self, $key ) = @_;
393            $self->_sock_result_bulk( 'rpop', $key );
394    }
395    
396  =head1 AUTHOR  =head1 AUTHOR
397    
398  Dobrica Pavlinusic, C<< <dpavlin at rot13.org> >>  Dobrica Pavlinusic, C<< <dpavlin at rot13.org> >>

Legend:
Removed from v.21  
changed lines
  Added in v.27

  ViewVC Help
Powered by ViewVC 1.1.26