com.sun.electric.tool.drc
Class MTDRCTool

java.lang.Object
  extended by com.sun.electric.tool.Job
      extended by com.sun.electric.tool.MultiTaskJob<Layer,MTDRCTool.MTDRCResult,MTDRCTool.MTDRCResult>
          extended by com.sun.electric.tool.drc.MTDRCTool
All Implemented Interfaces:
java.io.Serializable
Direct Known Subclasses:
MTDRCAreaTool, MTDRCLayoutTool

public abstract class MTDRCTool
extends MultiTaskJob<Layer,MTDRCTool.MTDRCResult,MTDRCTool.MTDRCResult>

User: gg151869 Date: Dec 12, 2007

See Also:
Serialized Form

Nested Class Summary
static class MTDRCTool.MTDRCResult
           
 
Nested classes/interfaces inherited from class com.sun.electric.tool.Job
Job.Mode, Job.Priority, Job.Type
 
Field Summary
protected  com.sun.electric.tool.drc.CellLayersContainer cellLayersCon
           
protected  long globalStartTime
           
protected  boolean printLog
           
protected  DRCRules rules
           
protected  Cell topCell
           
 
Fields inherited from class com.sun.electric.tool.Job
BATCHMODE, endTime, LOCALDEBUGFLAG, startTime
 
Constructor Summary
MTDRCTool(java.lang.String jobName, Cell c, Consumer<MTDRCTool.MTDRCResult> consumer)
           
 
Method Summary
 MTDRCTool.MTDRCResult mergeTaskResults(java.util.Map<Layer,MTDRCTool.MTDRCResult> taskResults)
          This abtract method combines task results into final result.
 void prepareTasks()
          This abstract method split large computation into smaller task.
 MTDRCTool.MTDRCResult runTask(Layer taskKey)
          This abtract methods performs computation of each task.
 
Methods inherited from class com.sun.electric.tool.MultiTaskJob
doIt, startTask
 
Methods inherited from class com.sun.electric.tool.Job
abort, acquireExamineLock, checkAbort, fieldVariableChanged, getAllJobs, getDatabase, getDebug, getDeleteWhenDone, getDisplay, getExtendedUserInterface, getInfo, getNumThreads, getRunMode, getRunningJob, getScheduledToAbort, getStatus, getUserInterface, initJobManager, invokeExamineLater, isFinished, releaseExamineLock, remove, setDebug, setProgress, setReportExecutionFlag, setThreadMode, startJob, startJob, startJobOnMyResult, terminateFail, terminateIt, terminateOK, threadDatabase, toString, updateIncrementalDRCErrors, updateNetworkErrors, wantUpdateGui
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

topCell

protected Cell topCell

globalStartTime

protected long globalStartTime

cellLayersCon

protected com.sun.electric.tool.drc.CellLayersContainer cellLayersCon

printLog

protected final boolean printLog

rules

protected DRCRules rules
Constructor Detail

MTDRCTool

public MTDRCTool(java.lang.String jobName,
                 Cell c,
                 Consumer<MTDRCTool.MTDRCResult> consumer)
Method Detail

prepareTasks

public void prepareTasks()
Description copied from class: MultiTaskJob
This abstract method split large computation into smaller task. Smaller tasks are identified by TaskKey class. Each task is scheduled by startTask method.

Specified by:
prepareTasks in class MultiTaskJob<Layer,MTDRCTool.MTDRCResult,MTDRCTool.MTDRCResult>

mergeTaskResults

public MTDRCTool.MTDRCResult mergeTaskResults(java.util.Map<Layer,MTDRCTool.MTDRCResult> taskResults)
Description copied from class: MultiTaskJob
This abtract method combines task results into final result.

Specified by:
mergeTaskResults in class MultiTaskJob<Layer,MTDRCTool.MTDRCResult,MTDRCTool.MTDRCResult>
Parameters:
taskResults - map which contains result of each completed task.
Returns:
final result which is obtained by merging task results.

runTask

public MTDRCTool.MTDRCResult runTask(Layer taskKey)
Description copied from class: MultiTaskJob
This abtract methods performs computation of each task.

Specified by:
runTask in class MultiTaskJob<Layer,MTDRCTool.MTDRCResult,MTDRCTool.MTDRCResult>
Parameters:
taskKey - task key which identifies the task
Returns:
result of task computation