NAME

Protocol::Memcached::Client - memcached client binary protocol implementation

VERSION

version 0.004

SYNOPSIS

package Subclass::Of::Protocol::Memcached;
use parent qw(Protocol::Memcached::Client);

sub write { $_[0]->{socket}->write($_[1]) }

package main;
my $mc = Subclass::Of::Protocol::Memcached->new;
my ($k, $v) = ('hello' => 'world');
$mc->set(
  $k => $v,
  on_complete => sub {
    $mc->get(
      'key',
      on_complete => sub { my $v = shift; print "Had $v\n" },
      on_error => sub { die "Failed because of @_\n" },
    );
  }
);

DESCRIPTION

Bare minimum protocol support for memcached. This class is transport-agnostic and as such is not a working implementation - you need to subclass and provide your own ->write method.

If you're using this class, you're most likely doing it wrong - head over to the "SEE ALSO" section to rectify this.

SUBCLASSING

Provide the following method:

write

This will be called with the data to be written, and zero or more named parameters:

  • on_flush - coderef to execute when the data has left the building, if this is not supported by the transport layer then the subclass should call the coderef before returning

and when you have data, call "on_read".

AUTHOR

Tom Molesworth <cpan@entitymodel.com>

LICENSE

Copyright Tom Molesworth 2011. Licensed under the same terms as Perl itself.