|
NAMEDR::Tarantool::AsyncClient - async client for tarantool <http://tarantool.org>SYNOPSISuse DR::Tarantool::AsyncClient 'tarantool'; DR::Tarantool::AsyncClient->connect( host => '127.0.0.1', port => 12345, spaces => { 0 => { name => 'users', fields => [ qw(login password role), { name => 'counter', type => 'NUM' } ], indexes => { 0 => 'login', 1 => [ qw(login password) ], } }, 2 => { name => 'roles', fields => [ qw(name title) ], indexes => { 0 => 'name', 1 => { name => 'myindex', fields => [ 'name', 'title' ], } } } }, sub { my ($client) = @_; ... } ); $client->ping(sub { ... }); $client->insert('space', [ 'user', 10, 'password' ], sub { ... }); $client->call_lua(foo => ['arg1', 'arg2'], sub { }); $client->select('space', 1, sub { ... }); $client->delete('space', 1, sub { ... }); $client->update('space', 1, [ passwd => set => 'abc' ], sub { .. }); Class methodsconnectConnects to <Tarantool:http://tarantool.org>, returns (by callback) an object which can be used to make requests.DR::Tarantool::AsyncClient->connect( host => $host, port => $port, spaces => $spaces, reconnect_period => 0.5, reconnect_always => 1, sub { my ($obj) = @_; if (ref $obj) { ... # handle errors } ... } ); Arguments
AttributesspaceReturns a space object by space name or numeric id. See perldoc DR::Tarantool::Spaces for more details.Worker methodsAll methods accept callbacks which are invoked with the following arguments:
sub { if ($_[0] eq 'ok') { my ($status, $tuples) = @_; ... } else { my ($status, $code, $errstr) = @_; } } pingPing the server.$client->ping(sub { ... }); Arguments
insertInsert a tuple into a space.$client->insert('space', [ 'user', 10, 'password' ], sub { ... }); $client->insert('space', \@tuple, $flags, sub { ... }); Arguments
call_luaCall a Lua function. All arguments are passed to Lua as binary strings. Returned tuples can be unpacked using either a space description or a format specification.$client->call_lua(foo => ['arg1', 'arg2'], sub { }); $client->call_lua(foo => [], 'space_name', sub { ... }); $client->call_lua(foo => \@args, flags => $f, space => $space_name, sub { ... } ); $client->call_lua(foo => \@args, fields => [ qw(a b c) ], sub { ... } ); $client->call_lua(foo => \@args, fields => [ qw(a b c), { type => 'NUM', name => 'abc'} ... ], sub { ... } ); Arguments
Optional arguments
selectSelect a tuple from a space by index.$tuples = $client->select('space', 1, sub { ... }); $tuples = $client->select('space', [1, 2], sub { ... }); $tuples = $client->select('space_name', [1,2,3] => 'index_name', sub { ... }); Arguments
optional arguments This section can contain only one element, which is either an index name, or a hash with the following fields:
deleteDelete a tuple.$client->delete('space', 1, sub { ... }); $client->delete('space', $key, $flags, sub { ... }); Tuple is always deleted by primary key. Arguments
updateUpdate a tuple.$client->update('space', 1, [ passwd => set => 'abc' ], sub { .. }); $client->update( 'space', 1, [ [ passwd => set => 'abc' ], [ login => 'delete' ] ], sub { ... } ); Arguments
last_codeThe error code returned by the last request (see "last_code" in DR::Tarantool::LLClient).last_error_stringThe error message associated with the last request (see "last_error_string" in DR::Tarantool::LLClient), if there was an error.COPYRIGHT AND LICENSECopyright (C) 2011 Dmitry E. Oboukhov <unera@debian.org> Copyright (C) 2011 Roman V. Nikolaev <rshadow@rambler.ru> This program is free software, you can redistribute it and/or modify it under the terms of the Artistic License. VCSThe project is placed git repo on github: <https://github.com/dr-co/dr-tarantool/>.
Visit the GSP FreeBSD Man Page Interface. |