AnyEvent-Subprocess
view release on metacpan or search on metacpan
lib/AnyEvent/Subprocess/Job.pm view on Meta::CPAN
package AnyEvent::Subprocess::Job;
BEGIN {
$AnyEvent::Subprocess::Job::VERSION = '1.102912';
}
# ABSTRACT: role representing a runnable job
use AnyEvent;
use AnyEvent::Subprocess::Types qw(JobDelegate SubprocessCode);
use Try::Tiny;
use namespace::autoclean;
use Moose::Role;
with 'AnyEvent::Subprocess::Role::WithDelegates' => {
type => JobDelegate,
};
has 'code' => (
is => 'ro',
isa => SubprocessCode,
required => 1,
coerce => 1,
);
has 'on_completion' => (
is => 'ro',
isa => 'CodeRef',
predicate => '_has_on_completion',
);
has 'run_class' => (
is => 'ro',
isa => 'ClassName',
required => 1,
default => sub {
require AnyEvent::Subprocess::Running;
return 'AnyEvent::Subprocess::Running';
},
);
sub _init_run_instance {
my ($self) = @_;
my $run = $self->run_class->new(
delegates => [$self->_build_run_delegates],
($self->_has_on_completion) ? (on_completion => $self->on_completion) : ()
);
return $run;
}
sub _build_run_delegates {
my $self = shift;
return $self->_invoke_delegates('build_run_delegates');
}
sub _child_setup_hook {
my $self = shift;
$self->_invoke_delegates('child_setup_hook');
return;
}
sub _child_finalize_hook {
my $self = shift;
$self->_invoke_delegates('child_finalize_hook');
}
sub _parent_setup_hook {
my $self = shift;
my $run = shift;
( run in 0.585 second using v1.01-cache-2.11-cpan-39bf76dae61 )