|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectjavax.realtime.util.ThreadBoundExecutor
This class implements an Executor that has permanently a
thread bound.
| Field Summary | |
protected boolean |
active
|
protected int |
executionEligibility
|
protected javax.realtime.util.ThreadBoundExecutor.ExecutorLogic |
executorLogic
|
protected RealtimeThread |
thread
|
| Constructor Summary | |
ThreadBoundExecutor(SchedulingParameters schedulingParam)
Creates a new ThreadBoundExecutor instance with the
specified parameters. |
|
ThreadBoundExecutor(SchedulingParameters schedulingParam,
ReleaseParameters releaseParam,
MemoryParameters memoryParam,
MemoryArea memoryArea,
ProcessingGroupParameters groupParam,
boolean noHeap)
Creates a new ThreadBoundExecutor instance with the
specified parameters. |
|
| Method Summary | |
boolean |
addIfFeasible()
Add to the feasibility of the already set scheduler if the resulting feasibility set is schedulable. |
boolean |
addToFeasibility()
Inform the scheduler and cooperating facilities that the resource demands (as expressed in the associated instances of SchedulingParameters, ReleaseParameters, MemoryParameters, and ProcessingGroupParameters) of this instance of Schedulable will be considered in the feasibility analysis of the associated Scheduler until further notice. |
void |
execute(Runnable logic)
Executes the given logic. |
int |
executionEligibility()
|
MemoryParameters |
getMemoryParameters()
Get the MemoryParameters of this schedulable object. |
ProcessingGroupParameters |
getProcessingGroupParameters()
Get the ProcessingGroupParameters of this
schedulable object. |
ReleaseParameters |
getReleaseParameters()
Get the ReleaseParameters of this schedulable object. |
Scheduler |
getScheduler()
Get the Scheduler for this schedulable object. |
SchedulingParameters |
getSchedulingParameters()
Get the SchedulingParameters for this schedulable object. |
boolean |
removeFromFeasibility()
Inform the scheduler and cooperating facilities that the resource demands, as expressed in the associated instances of SchedulingParameters, ReleaseParameters, MemoryParameters, and ProcessingGroupParameters, of
this instance of Schedulable should no longer be
considered in the feasibility analysis of the associated Scheduler. |
void |
run()
|
boolean |
setIfFeasible(ReleaseParameters release,
MemoryParameters memory)
|
boolean |
setIfFeasible(ReleaseParameters release,
MemoryParameters memory,
ProcessingGroupParameters group)
|
boolean |
setIfFeasible(ReleaseParameters release,
ProcessingGroupParameters group)
|
boolean |
setIfFeasible(SchedulingParameters scheduling,
ReleaseParameters release,
MemoryParameters memory)
|
boolean |
setIfFeasible(SchedulingParameters scheduling,
ReleaseParameters release,
MemoryParameters memory,
ProcessingGroupParameters group)
|
void |
setMemoryParameters(MemoryParameters memoryParam)
Set the MemoryParameters for this schedulable object. |
boolean |
setMemoryParametersIfFeasible(MemoryParameters memoryParam)
Returns true if, after considering the value of the parameter, the task set would still be feasible. |
void |
setProcessingGroupParameters(ProcessingGroupParameters groupParam)
Set the ProcessingGroupParameters for this schedulable object. |
boolean |
setProcessingGroupParametersIfFeasible(ProcessingGroupParameters groupParam)
Set the ProcessingGroupParameters of this schedulable object
only if the resulting task set is feasible. |
void |
setReleaseParameters(ReleaseParameters releaseParam)
Set the ReleaseParametersfor this schedulable object. |
boolean |
setReleaseParametersIfFeasible(ReleaseParameters releaseParam)
Returns true if, after considering the value of the parameter, the task set would still be feasible. |
void |
setScheduler(Scheduler scheduler)
Set the Scheduler for this schedulable object. |
void |
setScheduler(Scheduler scheduler,
SchedulingParameters schedulingParam,
ReleaseParameters releaseParam,
MemoryParameters memoryParam,
ProcessingGroupParameters groupParam)
Set the Scheduler for this schedulable object. |
void |
setSchedulingParameters(SchedulingParameters schedulingParam)
Set the SchedulingParameters for this schedulable
object only if the resulting task set is feasible. |
boolean |
setSchedulingParametersIfFeasible(SchedulingParameters schedulingParam)
Set the SchedulingParameters for this schedulable object. |
void |
shutdown()
Releases all the resources assoiated with the executor. |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
protected RealtimeThread thread
protected boolean active
protected javax.realtime.util.ThreadBoundExecutor.ExecutorLogic executorLogic
protected int executionEligibility
| Constructor Detail |
public ThreadBoundExecutor(SchedulingParameters schedulingParam,
ReleaseParameters releaseParam,
MemoryParameters memoryParam,
MemoryArea memoryArea,
ProcessingGroupParameters groupParam,
boolean noHeap)
throws IllegalArgumentException
ThreadBoundExecutor instance with the
specified parameters.
schedulingParam - a SchedulingParameters value
which will be associated with the constructed instance of this.
If null this will be assigned the reference to the
SchedulingParameters of the current thread.releaseParam - a ReleaseParameters value
which will be associated with the constructed instance of this.
If null this will have no ReleaseParameters.memoryParam - a MemoryParameters value which
will be associated with the constructed instance of this. If
null this will have no MemoryParameters.memoryArea - The MemoryArea for this
ThreadBoundExecutor. If null, inherit the current
memory area at the time of construction. The initial memory
area must be a reference to a ScopedMemory or ImmortalMemory object if noheap is
true.groupParam - A ProcessingGroupParameters object
to which this will be associated. If null this will not be
associated with any processing group.noHeap - A flag meaning, when true, that this
will have characteristics identical to a NoHeapRealtimeThread. A false value means this will have
characteristics identical to a RealtimeThread. If
true and the current thread is not a NoHeapRealtimeThread or a RealtimeThread executing
within a ScopedMemory or ImmortalMemory scope
then an IllegalArgumentException is thrown.
public ThreadBoundExecutor(SchedulingParameters schedulingParam)
throws IllegalArgumentException
ThreadBoundExecutor instance with the
specified parameters.
schedulingParam - a SchedulingParameters value
which will be associated with the constructed instance of this.
If null this will be assigned the reference to the
SchedulingParameters of the current thread.| Method Detail |
public void execute(Runnable logic)
throws ShutdownExecutorException
execute in interface Executorlogic - a Runnable value
ShutdownExecutorException - if the
Executor has already been shut down.public void shutdown()
execute() method
should be performed after the executor has been shutdown.
shutdown in interface Executorpublic void run()
run in interface Runnablepublic boolean addIfFeasible()
addIfFeasible in interface Schedulablepublic boolean addToFeasibility()
addToFeasibility in interface Schedulablepublic MemoryParameters getMemoryParameters()
MemoryParameters of this schedulable object.
getMemoryParameters in interface SchedulableMemoryParameters value.public void setMemoryParameters(MemoryParameters memoryParam)
MemoryParameters for this schedulable object.
setMemoryParameters in interface SchedulablememoryParam - the MemoryParameters for this
schedulable object.public boolean setMemoryParametersIfFeasible(MemoryParameters memoryParam)
setMemoryParametersIfFeasible in interface SchedulablememoryParam - the MemoryParameters for this
schedulable object.
public ProcessingGroupParameters getProcessingGroupParameters()
ProcessingGroupParameters of this
schedulable object.
getProcessingGroupParameters in interface SchedulableProcessingGroupParameters valuepublic void setProcessingGroupParameters(ProcessingGroupParameters groupParam)
ProcessingGroupParameters for this schedulable object.
setProcessingGroupParameters in interface SchedulablegroupParam - a ProcessingGroupParameters valuepublic boolean setProcessingGroupParametersIfFeasible(ProcessingGroupParameters groupParam)
ProcessingGroupParameters of this schedulable object
only if the resulting task set is feasible.
setProcessingGroupParametersIfFeasible in interface SchedulablegroupParam - a ProcessingGroupParameters value
public ReleaseParameters getReleaseParameters()
ReleaseParameters of this schedulable object.
getReleaseParameters in interface SchedulableReleaseParameters valuepublic void setReleaseParameters(ReleaseParameters releaseParam)
ReleaseParametersfor this schedulable object.
setReleaseParameters in interface SchedulablereleaseParam - a ReleaseParameters valuepublic boolean setReleaseParametersIfFeasible(ReleaseParameters releaseParam)
setReleaseParametersIfFeasible in interface SchedulablereleaseParam - a ReleaseParameters valuepublic Scheduler getScheduler()
Scheduler for this schedulable object.
getScheduler in interface SchedulableScheduler value
public void setScheduler(Scheduler scheduler)
throws IllegalThreadStateException
Scheduler for this schedulable object.
setScheduler in interface Schedulablescheduler - the scheduler.
IllegalThreadStateException
public void setScheduler(Scheduler scheduler,
SchedulingParameters schedulingParam,
ReleaseParameters releaseParam,
MemoryParameters memoryParam,
ProcessingGroupParameters groupParam)
throws IllegalThreadStateException
Scheduler for this schedulable object.
setScheduler in interface Schedulablescheduler - a Scheduler valueschedulingParam - a SchedulingParameters valuereleaseParam - a ReleaseParameters valuememoryParam - a MemoryParameters valuegroupParam - a ProcessingGroupParameters value
IllegalThreadStateException - if an error occurspublic SchedulingParameters getSchedulingParameters()
SchedulingParameters for this schedulable object.
getSchedulingParameters in interface SchedulableSchedulingParameters valuepublic void setSchedulingParameters(SchedulingParameters schedulingParam)
SchedulingParameters for this schedulable
object only if the resulting task set is feasible.
setSchedulingParameters in interface SchedulableschedulingParam - a SchedulingParameters valuepublic boolean setSchedulingParametersIfFeasible(SchedulingParameters schedulingParam)
SchedulingParameters for this schedulable object.
setSchedulingParametersIfFeasible in interface SchedulableschedulingParam - a SchedulingParameters value
public boolean removeFromFeasibility()
SchedulingParameters, ReleaseParameters, MemoryParameters, and ProcessingGroupParameters, of
this instance of Schedulable should no longer be
considered in the feasibility analysis of the associated Scheduler. Whether the resulting system is feasible or not,
the subtrac-tion is completed.
removeFromFeasibility in interface Schedulablepublic int executionEligibility()
public boolean setIfFeasible(ReleaseParameters release,
MemoryParameters memory)
setIfFeasible in interface Schedulable
public boolean setIfFeasible(ReleaseParameters release,
ProcessingGroupParameters group)
setIfFeasible in interface Schedulable
public boolean setIfFeasible(SchedulingParameters scheduling,
ReleaseParameters release,
MemoryParameters memory)
setIfFeasible in interface Schedulable
public boolean setIfFeasible(ReleaseParameters release,
MemoryParameters memory,
ProcessingGroupParameters group)
setIfFeasible in interface Schedulable
public boolean setIfFeasible(SchedulingParameters scheduling,
ReleaseParameters release,
MemoryParameters memory,
ProcessingGroupParameters group)
setIfFeasible in interface Schedulable
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||