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 <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.

