NBU

 view release on metacpan or  search on metacpan

lib/NBU/Job.pm  view on Meta::CPAN

  if (defined($mount)) {
    $self->popState($tm);
#    $self->mount->positioned($tm);
  }
  return $mount;
}

sub startWriting {
  my $self = shift;
  my $tm = shift;

  $self->pushState('WRI', $tm);
  $self->{FRAGMENTCOUNTER}++;
}

sub doneWriting {
  my $self = shift;
  my $tm = shift;

  $self->popState($tm);
}

sub type {
  my $self = shift;

  if (@_) {
    $self->{TYPE} = shift;
  }

  return $self->{TYPE};
}

my @jobStates = ("queued", "active", "re-queued", "done", undef, "incomplete");
sub state {
  my $self = shift;

  if (@_) {
    $self->{STATE} = shift;
  }
  return $jobStates[$self->{STATE}];
}

sub active {
  my $self = shift;

  return ($self->{STATE} == 1);
}

sub done {
  my $self = shift;

  return (($self->{STATE} == 3) || ($self->{STATE} == 5));
}

sub queued {
  my $self = shift;

  return (($self->{STATE} == 0) || ($self->{STATE} == 2));
}

sub busy {
  my $self = shift;

  if (!$self->{STARTOP}) {
#print STDERR "Job ".$self->id." has no start op?\n";
    return undef;
  }
  else  {
    return $asOf - $self->{STARTOP};
  }
}

sub files {
  my $self = shift;

  if (defined(my $fileListR = $self->{FILES})) {
    return@$fileListR;
  }
  else {
    return ();
  }
}

my %opCodes = (
  -1 => '---',
  25 => 'WAI',
  2 =>  'CON',
  26 => 'CON',
  0  => ' ? ',
  27 => 'MNT',
  29 => 'POS',
  3  => 'WRI',
  35 => 'WRI',
);

sub operation {
  my $self = shift;

  return undef if ($self->state ne "active");

  if (@_) {
    my $opCode = shift;
    $self->{OPERATION} = $opCode unless ($opCode == 0);
  }
  my $opCode;
  if (!defined($self->{OPERATION})) {
    return "---";
  }
  elsif (!defined($opCode = $opCodes{$self->{OPERATION}})) {
    $opCode = sprintf("%3d", $self->{OPERATION});
  }

  return $opCode;
}

sub currentFile {
  my $self = shift;

  return ($self->state eq "active") ? $self->{CURRENTFILE} : undef;
}



( run in 0.836 second using v1.01-cache-2.11-cpan-39bf76dae61 )