NAME
   AnyEvent::Riak - AnyEvent ProtocolBuffers Riak Client

VERSION
   version 0.93

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.

 get_bucket
   Get bucket properties request.

   bucket
       required, string

   type
       optional, string

 set_bucket
   Set bucket properties request

   bucket
       required, string

   props
       required, RpbBucketProps

   type
       optional, string

 reset_bucket
   Reset bucket properties request

   bucket
       required, string

   type
       optional, string

 get_bucket_type
   Get bucket properties request

   type
       required, string

 set_bucket_type
   Set bucket properties request

   type
       required, string

   props
       required, RpbBucketProps

 get
   Get Request - retrieve bucket/key

   bucket
       required, string

   key required, string

   r   optional, number

   pr  optional, number

   basic_quorum
       optional, boolean

   notfound_ok
       optional, boolean

   if_modified
       optional, string

       fail if the supplied vclock does not match

   head
       optional, boolean

       return everything but the value

   deletedvclock
       optional, boolean

       return the tombstone's vclock, if applicable

   timeout
       optional, number

   sloppy_quorum
       optional, boolean

       Experimental, may change/disappear

   n_val
       optional, number

       Experimental, may change/disappear

   type
       optional, string

       Bucket type, if not set we assume the 'default' type

 put
   Put request - if options.return_body is set then the updated
   metadata/data for the key will be returned.

   bucket
       required, string

   key optional, string

   vclock
       optional, string

   content
       required, RpbContent

   w   optional, number

   dw  optional, number

   return_body
       optional, boolean

   pw  optional, number

   if_not_modified
       optional, boolean

   if_none_match
       optional, boolean

   return_head
       optional, boolean

   timeout
       optional, number

   asis
       optional, boolean

   sloppy_quorum
       optional, boolean

       Experimental, may change/disappear

   n_val
       optional, number

       Experimental, may change/disappear

   type
       optional, string

       Bucket type, if not set we assume the 'default' type

RESPONSE OBJECTS
   Results returned from various methods are blessed response objects from
   the following types. Their attributes can be accessed using accessors
   (of the same name), or using the response as a HashRef.

 RpbErrorResp
   Error response - may be generated for any Req

   errmsg
       required, string

   errcode
       required, number

 RpbGetServerInfoResp
   Get server info request - no message defined, just send
   RpbGetServerInfoReq message code

   node
       optional, string

   server_version
       optional, string

 RpbGetBucketResp
   Get bucket properties response

   props
       required, RpbBucketProps

 RpbGetClientIdResp
   Get ClientId Request - no message defined, just send RpbGetClientIdReq
   message code

   client_id
       required, string

       Client id in use for this connection

 RpbGetResp
   Get Response - if the record was not found there will be no
   content/vclock

   content
       repeated, RpbContent

   vclock
       optional, string

       the opaque vector clock for the object

   unchanged
       optional, boolean

 RpbPutResp
   Put response - same as get response with optional key if one was
   generated

   content
       repeated, RpbContent

   vclock
       optional, string

       the opaque vector clock for the object

   key optional, string

       the key generated, if any

 RpbListBucketsResp
   List buckets response - one or more of these packets will be sent the
   last one will have done set true (and may not have any buckets in it)

   buckets
       repeated, string

   done
       optional, boolean

 RpbListKeysResp
   List keys in bucket response - one or more of these packets will be sent
   the last one will have done set true (and may not have any keys in it)

   keys
       repeated, string

   done
       optional, boolean

 RpbMapRedResp
   Map/Reduce response one or more of these packets will be sent the last
   one will have done set true (and may not have phase/data in it)

   phase
       optional, number

   response
       optional, string

   done
       optional, boolean

 RpbIndexResp
   Secondary Index query response

   keys
       repeated, string

   results
       repeated, RpbPair

   continuation
       optional, string

   done
       optional, boolean

 RpbCSBucketResp
    return for CS bucket fold

   objects
       repeated, RpbIndexObject

   continuation
       optional, string

   done
       optional, boolean

 RpbCounterUpdateResp
   Counter update response? No message | error response

   value
       optional, sint64

 RpbCounterGetResp
   Counter value response

   value
       optional, sint64

AUTHOR
   Damien Krotkine <[email protected]>

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.