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.