summary refs log tree commit diff
path: root/lib/AnyEvent/Riak/Role/CVCB.pm
blob: 74684c28de540832baaa7f1e7a91627f0d8b75fe (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package AnyEvent::Riak::Role::CVCB;

use Moose::Role;

sub default_cb {
    my ($self, $options) = @_;
    return sub {
        my $res = shift;
        return $res;
    };
}

sub cvcb {
    my ($self, $options) = @_;

    my ($cv, $cb);
    $cv = AE::cv;
    if ($options->{callback}) {
        $cb = delete $options->{callback};
    }
    else {
        $cb = $self->default_cb();
    }
    ($cv, $cb);
}

1;