This file is indexed.

/usr/share/perl5/Event/ExecFlow/Callbacks.pm is in libevent-execflow-perl 0.64-0ubuntu3.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  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
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
package Event::ExecFlow::Callbacks;

use strict;

sub get_cb_list                 { shift->{cb_list}                      }
sub set_cb_list                 { shift->{cb_list}              = $_[1] }

sub new {
    my $class = shift;
    my @cb_list = @_;

    my $self = bless {
        cb_list     => \@cb_list,
    }, $class;
    
    return $self;
}

sub prepend {
    my $self = shift;
    my (@cb) = @_;
    
    unshift @{$self->get_cb_list}, @cb;
    
    return $self;
}

sub add {
    my $self = shift;
    my (@cb) = @_;
    
    push @{$self->get_cb_list}, @cb;
    
    return $self;
}

sub execute {
    my $self = shift;
    my ($job) = @_;
    
    foreach my $cb ( @{$self->get_cb_list} ) {
        eval { $cb->(@_) };
print "Catched Callbacks Exception: $@" if $@;
        if ( $@ ) {
            $job->set_error_message($@);
            return 0;
        }
    }
    
        
    1;
}

1;

__END__

=head1 NAME

Event::ExecFlow::Callbacks - Callbacks attached to jobs

=head1 SYNOPSIS

  #-- Create a new Callbacks object
  my $callbacks = Event::ExecFlow::Callbacks->new (
    sub { print "sub called\n" },
    sub { print "another sub of this called\n" },
  );

  #-- Attach callbacks to a job
  $job->set_pre_callbacks($callbacks);
  
  #-- Add more subs
  $callbacks->add(sub { print "a sub added later\n" });
  $callbacks->prepend(sub { print "a sub prepended to the list of subs } );

  #-- the execute() methods is executed later by Event::ExecFlow
  $callbacks->execute($job);
  
=head1 DESCRIPTION

This class represents one or more closures which can be attached as
callbacks to an Event::ExecFlow::Job.

=head1 OBJECT HIERARCHY

  Event::ExecFlow

  Event::ExecFlow::Job
  +--- Event::ExecFlow::Job::Group
  +--- Event::ExecFlow::Job::Command
  +--- Event::ExecFlow::Job::Code

  Event::ExecFlow::Frontend
  Event::ExecFlow::Callbacks
  Event::ExecFlow::Scheduler
  +--- Event::ExecFlow::Scheduler::SimpleMax

=head1 ATTRIBUTES

Attributes can by accessed at runtime using the common get_ATTR(),
set_ATTR() style accessors.

[ FIXME: describe all attributes in detail ]

=head1 METHODS

[ FIXME: describe all methods in detail ]

=head1 AUTHORS

 Jörn Reder <joern at zyn dot de>

=head1 COPYRIGHT AND LICENSE

Copyright 2005-2006 by Jörn Reder.

This library is free software; you can redistribute it and/or modify
it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2.1 of the
License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Library General Public License for more details.

You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307
USA.

=cut