AnyEvent-Subprocess

 view release on metacpan or  search on metacpan

lib/AnyEvent/Subprocess/Job/Delegate/Callback.pm  view on Meta::CPAN

package AnyEvent::Subprocess::Job::Delegate::Callback;
BEGIN {
  $AnyEvent::Subprocess::Job::Delegate::Callback::VERSION = '1.102912';
}
# ABSTRACT: call callbacks for each job/run/done step
use AnyEvent::Subprocess::Running::Delegate::Callback;
use Moose;
use MooseX::StrictConstructor;

with 'AnyEvent::Subprocess::Job::Delegate';

for my $a (qw/child_setup_hook child_finalize_hook
              parent_setup_hook parent_finalize_hook
              completion_hook build_code_args receive_child_result
              receive_child_error/) {

    has $a => (
        init_arg => $a,
        reader   => "_$a",
        isa      => 'CodeRef',
        default  => sub { sub {} },
        required => 1,
    );
}

has 'state' => (
    is       => 'ro',
    isa      => 'HashRef',
    required => 1,
    default  => sub { +{} },
);

sub build_run_delegates {
    my $self = shift;
    return AnyEvent::Subprocess::Running::Delegate::Callback->new(
          name            => $self->name,
          completion_hook => $self->_completion_hook,
          state           => $self->state,
      );
}

sub child_setup_hook {
    my ($self, $job) = @_;
    $self->_child_setup_hook->($self, $job);
}

sub child_finalize_hook {
    my ($self, $job) = @_;
    $self->_child_finalize_hook->($self, $job);
}

sub parent_setup_hook {
    my ($self, $job, $run) = @_;
    $self->_parent_setup_hook->($self, $job, $run);
}

sub parent_finalize_hook {
    my ($self, $job) = @_;
    $self->_parent_finalize_hook->($self, $job);
}

sub build_code_args {
    my ($self, $job) = @_;
    return $self->_build_code_args->($self, $job);
}

sub receive_child_result {
    my ($self, $job, $result) = @_;
    return $self->_receive_child_result->($self, $job, $result);
}

sub receive_child_error {
    my ($self, $job, $error) = @_;
    return $self->_receive_child_error->($self, $job, $error);
}

1;

__PACKAGE__->meta->make_immutable;

__END__
=pod

=head1 NAME

AnyEvent::Subprocess::Job::Delegate::Callback - call callbacks for each job/run/done step

=head1 VERSION

version 1.102912

=head1 AUTHOR

Jonathan Rockway <jrockway@cpan.org>

=head1 COPYRIGHT AND LICENSE

This software is copyright (c) 2011 by Jonathan Rockway.

This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.

=cut



( run in 1.023 second using v1.01-cache-2.11-cpan-5735350b133 )