The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Algorithm::DependencySolver::Operation - An operation representation

VERSION

version 1.01

SYNOPSIS

  my $operation = Algorithm::DependencySolver::Operation->new(
    id            => 2,
    depends       => [qw(x)],
    affects       => [qw(y)],
    prerequisites => [1],
    obj           => $whatever
  );

OPTIONAL ATTRIBUTES

obj

An arbitrary object, which is never used by anything in the Algorithm::DependencySolver::* namespace.

prerequisites

An arrayref of other Operation objects, identified by their id strings.

If an operation $b depends on operation <C$a>, then any cycle which would have resulted in $b running before $a will be broken just before operation $a.

That is, if there exists a cycle containing both $a and $b, then edge $e will be removed, where $e is any edge within the cycle which points directly to $a.

id

A string which uniquely identifies this operation

depends

An arrayref of resources (each resource is simply a string identifier) that this operation depends on.

affects

An arrayref of resources (each resource is simply a string identifier) that this operation affects (i.e., modifies).