edu.isi.pegasus.planner.refiner

## Class MainEngine

- java.lang.Object
- - edu.isi.pegasus.planner.refiner.Engine
  - - edu.isi.pegasus.planner.refiner.MainEngine

    public class MainEngine
    extends Engine

The central class that calls out to the various other components of Pegasus.

Version:
  $Revision$
Author:
  Karan Vahi, Gaurang Mehta

### Field Summary

Fields
`static java.lang.String` `CLEANUP_DIR` The basename of the directory that contains the submit files for the cleanup DAG that for the concrete dag generated for the workflow.
`private AuthenticateEngine` `mAuthEng` The handle to the Authentication Engine that performs the authentication with the various sites.
`private ADag` `mCleanupDag` The cleanup dag for the final concrete dag.
`private CreateDirectory` `mCreateEng` The engine that ends up creating random directories in the remote execution pools.
`private java.util.Set` `mExecPools` The pools on which the Dag should be executed as specified by the user.
`private InterPoolEngine` `mIPEng` The handle to the InterPool Engine that calls out to the Site Selector and maps the jobs.
`private NodeCollapser` `mNodeCollapser` The handle to the node collapser.
`private ADag` `mOriginalDag` The Original Dag object which is constructed by parsing the dag file.
`private ReplicaCatalogBridge` `mRCBridge` The bridge to the Replica Catalog.
`private DataReuseEngine` `mRedEng` The handle to the Reduction Engine that performs reduction on the graph.
`private ADag` `mReducedDag` The reduced Dag object which is got from the Reduction Engine.
`private RemoveDirectory` `mRemoveEng` The engine that ends up creating the cleanup dag for the dag.
`private TransferEngine` `mTransEng` The handle to the Transfer Engine that adds the transfer nodes in the graph to transfer the files from one site to another.

### Fields inherited from class edu.isi.pegasus.planner.refiner.Engine

`mBag, mLogger, mLogMsg, mOutputPool, mPoolFile, mPOptions, mProps, mRLIUrl, mSiteStore, mTCFile, mTCHandle, mTCMode, REGISTRATION_UNIVERSE, TRANSFER_UNIVERSE`

### Constructor Summary

Constructors
Constructor and Description
`MainEngine(ADag orgDag, PegasusBag bag)` This constructor initialises the class variables to the variables passed.

### Method Summary

All Methods Instance Methods Concrete Methods Deprecated Methods
`ADag` `getCleanupDAG()` Returns the cleanup dag for the concrete dag.
`PegasusBag` `getPegasusBag()` Returns the bag of intialization objects.
`ADag` `runPlanner()` The main function which calls the other engines and does the necessary work.
`java.lang.String` `setToString(java.util.Set s, java.lang.String delim)` A small helper method that displays the contents of a Set in a String.
`private void` `unmarkArgs()` Deprecated.

### Methods inherited from class edu.isi.pegasus.planner.refiner.Engine

`addVector, appendArrayList, complainForHeadNodeURLPrefix, complainForHeadNodeURLPrefix, loadProperties, printVector, stringInList, stringInPegVector, stringInVector, vectorToString`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### CLEANUP_DIR

    public static final java.lang.String CLEANUP_DIR

The basename of the directory that contains the submit files for the cleanup DAG that for the concrete dag generated for the workflow.

See Also:
  Constant Field Values

#### mOriginalDag

    private ADag mOriginalDag

The Original Dag object which is constructed by parsing the dag file.

#### mReducedDag

    private ADag mReducedDag

The reduced Dag object which is got from the Reduction Engine.

#### mCleanupDag

    private ADag mCleanupDag

The cleanup dag for the final concrete dag.

#### mExecPools

    private java.util.Set mExecPools

The pools on which the Dag should be executed as specified by the user.

#### mRCBridge

    private ReplicaCatalogBridge mRCBridge

The bridge to the Replica Catalog.

#### mIPEng

    private InterPoolEngine mIPEng

The handle to the InterPool Engine that calls out to the Site Selector and maps the jobs.

#### mRedEng

    private DataReuseEngine mRedEng

The handle to the Reduction Engine that performs reduction on the graph.

#### mTransEng

    private TransferEngine mTransEng

The handle to the Transfer Engine that adds the transfer nodes in the graph to transfer the files from one site to another.

#### mCreateEng

    private CreateDirectory mCreateEng

The engine that ends up creating random directories in the remote execution pools.

#### mRemoveEng

    private RemoveDirectory mRemoveEng

The engine that ends up creating the cleanup dag for the dag.

#### mAuthEng

    private AuthenticateEngine mAuthEng

The handle to the Authentication Engine that performs the authentication with the various sites.

#### mNodeCollapser

    private NodeCollapser mNodeCollapser

The handle to the node collapser.

### Constructor Detail

#### MainEngine

    public MainEngine(ADag orgDag,
                      PegasusBag bag)

This constructor initialises the class variables to the variables passed. The pool names specified should be present in the pool.config file

Parameters:
  `orgDag` - the dag to be worked on.
  `bag` - the bag of initialization objects

### Method Detail

#### runPlanner

    public ADag runPlanner()

The main function which calls the other engines and does the necessary work.

Returns:
  the planned worflow.

#### getCleanupDAG

    public ADag getCleanupDAG()

Returns the cleanup dag for the concrete dag.

Returns:
  the cleanup dag if the random dir is given. null otherwise.

#### getPegasusBag

    public PegasusBag getPegasusBag()

Returns the bag of intialization objects.

Returns:
  PegasusBag

#### unmarkArgs

    private void unmarkArgs()

Deprecated.
Unmarks the arguments , that are tagged in the DaxParser. At present there are no tagging.

#### setToString

    public java.lang.String setToString(java.util.Set s,
                                        java.lang.String delim)

A small helper method that displays the contents of a Set in a String.

Parameters:
  `s` - the Set whose contents need to be displayed
  `delim` - The delimited between the members of the set.
Returns:
  String