NAME
DR::Tarantool::AsyncClient - async client for tarantool
SYNOPSIS
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 methods
connect
Connects to tarantool:http://tarantool.org, returns (by callback) object that 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
- host & port
-
Address where tarantool is started.
- spaces
-
A hash with spaces description or DR::Tarantool::Spaces reference.
- reconnect_period & reconnect_always
-
See DR::Tarantool::LLClient for more details.
Attributes
space
Returns space object by name (or by number). See perldoc DR::Tarantool::Spaces for more details.
Worker methods
All methods receive callbacks that will receive the following arguments:
- status
-
If success the field will have value 'ok'.
- tuple(s) or code of error
-
If success, the second argument will contain tuple(s) that extracted by request.
- errorstr
-
Error string if error was happened.
sub
{
if
(
$_
[0] eq
'ok'
) {
my
(
$status
,
$tuples
) =
@_
;
...
}
else
{
my
(
$status
,
$code
,
$errstr
) =
@_
;
}
}
ping
Pings server.
$client
->ping(
sub
{ ... });
Arguments
insert
Inserts tuple into database.
$client
->insert(
'space'
, [
'user'
, 10,
'password'
],
sub
{ ... });
$client
->insert(
'space'
, \
@tuple
,
$flags
,
sub
{ ... });
Arguments
- space_name
- tuple
- flags (optional)
-
Flag list described in perldoc ":constant" in DR::Tarantool.
- callback
call_lua
Calls lua function. All arguments translates to lua as strings (As is). Returned tuples can be unpacked by space or by format.
$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
- space
-
Space name. Use the argument if Your function returns tuple(s) from a described in connect space.
- fields
-
Output fields format (like 'fields' in connect method).
- flags
-
Reserved option.
- args
-
Argument fields format.
select
Selects tuple(s) from database.
$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
The section can contain only one element: index name, or hash with the following fields:
delete
Deletes tuple.
$client
->
delete
(
'space'
, 1,
sub
{ ... });
$client
->
delete
(
'space'
,
$key
,
$flags
,
sub
{ ... });
Arguments
- space name
- key
- flags (optional)
-
Flag list described in perldoc ":constant" in DR::Tarantool.
- callback
update
Updates tuple.
$client
->update(
'space'
, 1, [
passwd
=>
set
=>
'abc'
],
sub
{ .. });
$client
->update(
'space'
,
1,
[ [
passwd
=>
set
=>
'abc'
], [
login
=>
'delete'
] ],
sub
{ ... }
);
Arguments
- space name
- key
- operations list
- flags (optional)
-
Flag list described in perldoc ":constant" in DR::Tarantool.
- callback
last_code
Returns code of last operation (see "last_code" in DR::Tarantool::LLClient).
last_error_string
Returns error message of last operation (see "last_error_string" in DR::Tarantool::LLClient)
COPYRIGHT AND LICENSE
Copyright (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.
VCS
The project is placed git repo on github: https://github.com/unera/dr-tarantool/.