Class Fork


public class Fork extends OutputSection

Title: Fork

Description: This class is a fork output section, used to split a job on every output link. Split job can be assembled back in a join input section. A maximum number of jobs inside a fork-join section can be specified: when reached this component will block until at least one job is joined.

Author:
Bertoli Marco Date: 13-mar-2006 Time: 15.23.22 Modified by J. Shuai & M. Cazzoli, implemented fork strategies
  • Constructor Details

    • Fork

      public Fork()
      Constructs a new Fork without blocking and with 1 job per link.
    • Fork

      public Fork(Integer jobsPerLink, Integer block)
      Construct a new Fork node.
      Parameters:
      jobsPerLink - number of jobs to be routed on each link.
      block - maximum number of jobs allowed in a fork-join region (-1 or 0 is infinity).
    • Fork

      public Fork(int jobsPerLink, int block)
      Construct a new Fork node.
      Parameters:
      jobsPerLink - number of jobs to be routed on each link.
      block - maximum number of jobs allowed in a fork-join region (-1 or 0 is infinity).
    • Fork

      public Fork(Integer jobsPerLink, Integer block, Boolean isSimplifiedFork, ForkStrategy[] forkStrategies)
  • Method Details

    • nodeLinked

      protected void nodeLinked(NetNode node) throws NetException
      Description copied from class: NodeSection
      This method should be overridden to implement a specific behaviour of the node section when the node section itself is linked to the owner node. This method should be used to set node section properties depending on the owner node ones.
      Overrides:
      nodeLinked in class NodeSection
      Parameters:
      node - Owner node.
      Throws:
      NetException
    • process

      protected int process(NetMessage message) throws NetException
      Splits input job on every output link and waits if 'block' job number are not joined if and only if block is enabled.
      Specified by:
      process in class NodeSection
      Parameters:
      message - message to be processed.
      Returns:
      message processing result.
      Throws:
      NetException - if something goes wrong.