semi合集-English.pdf - 第2704页
SEMI E97-0200A © SEMI 2000 24 boolean isActive () raises (Global::FrameworkErrorSignal); boolean isCanceled () raises (Global::FrameworkErrorSignal); boolean isCompleted () raises (Global::FrameworkErrorSignal); boolean …

SEMI E97-0200A © SEMI 200023
void setJobProperty (
in Global::Property aProperty)
raises (Global::FrameworkErrorSignal,
Global::SetValueOutOfRangeSignal,
Global::InvalidPropertyNameSignal,
Global::UnsupportedPropertySignal,
Global::ReadOnlyPropertySignal);
/* Indicates whether results are available for this Job. Each specialization may determine what constitutes results. */
boolean areJobResultsAvailable()
raises( Global::FrameworkErrorSignal );
/* Retrieve the latest results. Each implementation determines what constitutes relevant results. This may be used for
returning current results for complex Jobs. */
JobSupervisor::Results getJobResults()
raises( Global::FrameworkErrorSignal );
/* Begin the process to pause the Job at the next safe opportunity. Results in the transition to Pausing state and
eventually Paused state. */
void makePaused ()
raises (Global::FrameworkErrorSignal,
Global::InvalidStateTransitionSignal);
/* Request Job resume activity from the previous Pause. Results in the transition to the executing state. */
void makeExecuting ()
raises (Global::FrameworkErrorSignal,
Global::InvalidStateTransitionSignal);
/* Request to cancel the Job. This operation is only valid if the Job is in the Queued state (e.g. the Job cannot be
canceled once it is Active). This operation results in the transition to the Canceled state. */
void makeCanceled ()
raises (Global::FrameworkErrorSignal,
Global::InvalidStateTransitionSignal);
/* Begin the process to stop the Job. This is an orderly termination and should never cause irreparable problems (e.g.
should not stop etching a wafer in mid-cycle). This operation results in the transition to the Stopping state and
eventually the Stopped state. */
void makeStopped ()
raises (Global::FrameworkErrorSignal,
Global::InvalidStateTransitionSignal);
/* Begin the process to abort the Job. Caution should be used with this operation. Aborting a Job requires immediate
termination of the Job and could result in irrecoverable change to factory or material state. This operation results in
the transition to the Aborting state and eventually the Aborted state. */
void makeAborted ()
raises (Global::FrameworkErrorSignal,
Global::InvalidStateTransitionSignal);
/* Determine whether the Job is in state indicated. */
boolean isAborting ()
raises (Global::FrameworkErrorSignal);
boolean isAborted ()
raises (Global::FrameworkErrorSignal);

SEMI E97-0200A © SEMI 2000 24
boolean isActive ()
raises (Global::FrameworkErrorSignal);
boolean isCanceled ()
raises (Global::FrameworkErrorSignal);
boolean isCompleted ()
raises (Global::FrameworkErrorSignal);
boolean isExecuting ()
raises (Global::FrameworkErrorSignal);
boolean isFinished ()
raises (Global::FrameworkErrorSignal);
boolean isPausing ()
raises (Global::FrameworkErrorSignal);
boolean isPaused ()
raises (Global::FrameworkErrorSignal);
boolean isQueued ()
raises (Global::FrameworkErrorSignal);
boolean isStopping ()
raises (Global::FrameworkErrorSignal);
boolean isStopped ()
raises (Global::FrameworkErrorSignal);
/* Return the estimated time remaining until Job completion. The quality of this estimate is dependent both on the
specific Job derivative and on the implementation. If the Job is Finished or Canceled, a zero Duration will be
returned. */
Duration timeRemaining ()
raises (Global::FrameworkErrorSignal);
}; // Job
Contracted Services:
Interface Component Service
JobRequestor JobSupervision informJobStateChange

SEMI E97-0200A © SEMI 200025
QUEUED
FINISHED
COMPLETED ABORTED
STOPPED
CANCELED
ACTIVE
ABORTING
STOPPING
EXECUTING
PAUSE
PAUSING
PAUSED
COMPLETED ABORTED
STOPPED
ABORTING
STOPPING
EXECUTING
15
1
CANCELED
PAUSE
PAUSING
PAUSED
PAUSING
PAUSED
4
5
10
12
3
6
7
13
2
14
9
8
11
Figure 5
Job Dynamic Model
6.6.3.1 For implementations (e.g., Job derivatives), the Executing state is expected to be extended by partitioning it
into at least two “orthogonal” states. One would hold the Pause states. The other would contain the implementation
behavior of Executing.
Object State Tables: