Event::ExecFlow::Frontend - Abstract base class for custom frontends


Event-ExecFlow documentation Contained in the Event-ExecFlow distribution.

Index


Code Index:

NAME

Top

Event::ExecFlow::Frontend - Abstract base class for custom frontends

SYNOPSIS

Top

  #-- Derived from Event::ExecFlow::Frontend
  my $frontend = MyApp::GUI::Frontent->new();
  my $job      = Event::ExecFlow::Job::Command->new ( ... );
  $frontend->start_job($job);

  #-- Later the following methods are called and need to
  #-- by implemented by you
  $frontend->report_job_start($job);
  $frontend->report_job_progress($job);
  $frontend->report_job_error($job);
  $frontend->report_job_warning($job);
  $frontend->report_job_finished($job);
  $frontend->log($message);

DESCRIPTION

Top

This is an abstract base class and usually not used directly from the application. For daily programming the attributes defined in this class are most important, since they are common to all Jobs of the Event::ExecFlow framework.

OBJECT HIERARCHY

Top

  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

METHODS

Top

[ FIXME: describe all methods in detail ]

AUTHORS

Top

 Jörn Reder <joern at zyn dot de>

COPYRIGHT AND LICENSE

Top


Event-ExecFlow documentation Contained in the Event-ExecFlow distribution.

package Event::ExecFlow::Frontend;

use strict;
use Carp;

sub new {
    my $class = shift;

    my $self = bless {}, $class;
    
    return $self;
}

sub start_job {
    my $self = shift;
    my ($job) = @_;
    
    $job->set_frontend($self);
    $job->start;

    1;
}

#---------------------------------------------------------------------
# Dummy implementation, needs to by overridden by application class
#---------------------------------------------------------------------

sub report_job_added {
    my $self = shift;
    my ($job) = @_;
    1;
}

sub report_job_start {
    my $self = shift;
    my ($job) = @_;
    1;
}

sub report_job_progress {
    my $self = shift;
    my ($job) = @_;
    1;
}

sub report_job_error {
    my $self = shift;
    my ($job) = @_;
    1;
}

sub report_job_warning {
    my $self = shift;
    my ($job, $message) = @_;
    
    $message ||= $job->get_warning_message;

    1;
}

sub report_job_finished {
    my $self = shift;
    my ($job) = @_;
    1;
}

sub log {
    my $self = shift;
    my ($msg) = @_;
}

1;

__END__