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 )