DR-Tarantool

 view release on metacpan or  search on metacpan

lib/DR/Tarantool/MsgPack/AsyncClient.pm  view on Meta::CPAN

    my $key = shift;


    my $sno;
    my $s;

    if (Scalar::Util::looks_like_number $space) {
        $sno = $space;
    } else {
        $s = $self->{spaces}->space($space);
        $sno = $s->number;
    }

    $self->_llc->delete(
        $sno,
        $key,
        sub {
            my ($res) = @_;
            _cb_default($res, $s, $cb);
        }
    );
    return;
}

sub select :method {
    my $self = shift;
    my $cb = pop;
    $self->_llc->_check_cb( $cb );
    my $space = shift;
    my $index = shift;
    my $key = shift;
    my %opts = @_;

    my $sno;
    my $ino;
    my $s;
    if (Scalar::Util::looks_like_number $space) {
        $sno = $space;
        croak 'If space is number, index must be number too'
            unless Scalar::Util::looks_like_number $index;
        $ino = $index;
    } else {
        $s = $self->{spaces}->space($space);
        $sno = $s->number;
        $ino = $s->_index( $index )->{no};
    }
    $self->_llc->select(
        $sno,
        $ino,
        $key,
        $opts{limit},
        $opts{offset},
        $opts{iterator},
        sub {
            my ($res) = @_;
            _cb_default($res, $s, $cb);
        }
    );
}

sub update :method {
    my $self = shift;
    my $cb = pop;
    $self->_llc->_check_cb( $cb );
    my $space = shift;
    my $key = shift;
    my $ops = shift;

    my $sno;
    my $s;
    if (Scalar::Util::looks_like_number $space) {
        $sno = $space;
    } else {
        $s = $self->{spaces}->space($space);
        $sno = $s->number;
        $ops = $s->pack_operations($ops);
    }
    $self->_llc->update(
        $sno,
        $key,
        $ops,
        sub {
            my ($res) = @_;
            _cb_default($res, $s, $cb);
        }
    );
}

sub call_lua {
    my $self = shift;
    my $cb = pop;
    $self->_llc->_check_cb( $cb );

    my $proc = shift;
    my $tuple = shift;

    $tuple = [ $tuple ] unless ref $tuple;
    $self->_llc->_check_tuple( $tuple );


    $self->_llc->call_lua(
        $proc,
        $tuple,
        sub {
            my ($res) = @_;
            _cb_default($res, undef, $cb);
        }
    );
    return;
}


sub last_code { $_[0]->_llc->last_code }


sub last_error_string { $_[0]->_llc->last_error_string }

1;



( run in 0.523 second using v1.01-cache-2.11-cpan-39bf76dae61 )