focal (3) DR::Tarantool::AsyncClient.3pm.gz

Provided by: libdr-tarantool-perl_0.45-2build3_amd64 bug

NAME

       DR::Tarantool::AsyncClient - async client for tarantool <http://tarantool.org>

SYNOPSIS

           use 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 methods

   connect
       Connects 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

       host & port
           Address where tarantool is started.

       spaces
           A hash with space description or a DR::Tarantool::Spaces reference.

       reconnect_period & reconnect_always
           See DR::Tarantool::LLClient for more details.

Attributes

   space
       Returns a space object by space name or numeric id. See perldoc DR::Tarantool::Spaces for more details.

Worker methods

       All methods accept callbacks which are invoked with the following arguments:

       status
           On success, this field has value 'ok'. The value of this parameter determines the contents of the
           rest of the callback arguments.

       a tuple or tuples or an error code
           On success, the second argument contains tuple(s) produced by the request. On error, it contains the
           server error code.

       errorstr
           Error string in case of an error.

           sub {
               if ($_[0] eq 'ok') {
                   my ($status, $tuples) = @_;
                   ...
               } else {
                   my ($status, $code, $errstr) = @_;
               }
           }

   ping
       Ping the server.

           $client->ping(sub { ... });

       Arguments

       cb

   insert
       Insert a tuple into a space.

           $client->insert('space', [ 'user', 10, 'password' ], sub { ... });
           $client->insert('space', \@tuple, $flags, sub { ... });

       Arguments

       space_name
       tuple
       flags (optional)
           Possible flags are described in perldoc ":constant" in DR::Tarantool.

       callback

   call_lua
       Call 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

       function name
       function arguments
       space or fields
           Is optional. If given, this space description will be used to interpret contents of tuples returned
           by the procedure. Alternatively, instead of providing a reference to a space, the format can be set
           explicitly with fields argument.

       callback

       Optional arguments

       space
           Space name. Use the argument if your function returns tuple(s) from a space described on connect.

       fields
           Output format of the returned tuple (like 'fields' in connect method).

       flags
           Reserved option.

       args
           Format description for stored procedure arguments.

   select
       Select 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

       space name
       key(s)
       optional arguments
       callback

       optional arguments

       This section can contain only one element, which is either an index name, or a hash with the following
       fields:

       index
           index name or number

       limit
       offset

   delete
       Delete a tuple.

           $client->delete('space', 1, sub { ... });
           $client->delete('space', $key, $flags, sub { ... });

       Tuple is always deleted by primary key.

       Arguments

       space name
       key
       flags (optional)
           Server flags, as described in perldoc ":constant" in DR::Tarantool.

       callback

   update
       Update a tuple.

           $client->update('space', 1, [ passwd => set => 'abc' ], sub { .. });
           $client->update(
               'space',
               1,
               [ [ passwd => set => 'abc' ], [ login => 'delete' ] ],
               sub { ... }
           );

       Arguments

       space name
       key
       operation list
       flags (optional)
           Server flags, as described in perldoc ":constant" in DR::Tarantool.

       callback

   last_code
       The error code returned by the last request (see "last_code" in DR::Tarantool::LLClient).

   last_error_string
       The error message associated with the last request (see "last_error_string" in DR::Tarantool::LLClient),
       if there was an error.

        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/dr-co/dr-tarantool/>.