NAME

AnyEvent::Riak - AnyEvent ProtocolBuffers Riak Client

VERSION

version 0.90

SYNOPSIS

use AnyEvent::Riak;
my $cv1 = AE::cv;
my $client = AnyEvent::Riak->new(
  on_connect       => sub { $cv1->send },
  on_connect_error => sub { $cv1->croak($_[1])},
);
$cv1->recv;

my $cv2
$client->put({ bucket  => 'bucket_name',
               key     => 'key_name',
               content => { value => 'plip',
                            content_type => 'text/plain',
                          },
             },
             sub {
                 my ($result, $error) = @_;
                 $error and $cv2->croak(
                   sprintf("error %d: %s",
                   @{$error}{qw(error_code error_message)})
                 );
                 $cv2->send($result);
             });

my $put_result = $cv2->recv();

my $cv3 = AE::cv;
$client->get({ bucket => 'bucket_name',
               key => 'key_name',
             },
             sub {
                 my ($result, $error) = @_;
                 $error and $cv3->croak(
                   sprintf("error %d: %s",
                   @{$error}{qw(error_code error_message)})
                 );
                 $cv3->send($result);
             });

my $get_result = $cv3->recv();

ATTRIBUTES

host => $hostname

Str, Required. Riak IP or hostname. Default to 127.0.0.1

port => $port_number

Int, Required. Port of the PBC interface. Default to 8087

on_connect => $cb->($handle, $host, $port, $retry->())

CodeRef, required. Executed on connection. Check out AnyEvent::Handle#on_connect-cb--handle-host-port-retry

on_connect_error => $cb->($handle, $message)

CodeRef, required. Executed when the connection could not be established. Check out AnyEvent::Handle#on_connect_error-cb--handle-message

connect_timeout => $fractional_seconds

Float, Default 5. Timeout for connection operation, in seconds. Set to 0 for no timeout.

timeout => $fractional_seconds

Float, Default 5. Timeout for read/write operation, in seconds. Set to 0 for no timeout.

no_delay => <boolean>

Boolean, Default 0. If set to a true value, TCP_NODELAY will be enabled on the socket, which means deactivating Nagle's algorithm. Use only if you know what you're doing.

METHODS

$client->close($cb)

This method will wait until everything has been written to the connection, then close the connection, and then calls the callback without parameters. Use this to properly close the connection, before destroying the client instance.

DOCUMENTATION

The exhaustive documentation is here:

AnyEvent::Riak::Documentation

However, the current module doesn't support all features documented. get() and put() works, the rest may work... The status of supported functions will be updated.

sub BUILD { my ($self) = @_; $self->_handle(); }

AUTHOR

Damien Krotkine <dams@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2014 by Damien Krotkine.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.