public interface Schedulable extends Runnable, Timable
Schedulable objects are executable entities that are scheduled by the scheduler, that may get assigned execution time, that may be released by events and that may participate in feasibility analysis.
Supported schedulable objects are RealtimeThread and AsyncBaseEventHandler.
Modifier and Type | Method and Description |
---|---|
boolean |
addIfFeasible()
addIfFeasible adds this to the feasibility analysis of the
associated scheduler if the resulting system will be feasible.
|
boolean |
addToFeasibility()
addToFeasibility notifies the scheduler associated with this
that this schedulable object's scheduling, release, memory and
processing group parameters take part in the feasibility
analysis.
|
MemoryParameters |
getMemoryParameters()
getMemoryParameters returns a reference to the MemoryParameters of
this Schedulable.
|
ProcessingGroupParameters |
getProcessingGroupParameters()
getProcessingGroupParameters returns the current
ProcessingGroupParameters of this Schedulable.
|
ReleaseParameters |
getReleaseParameters()
getReleaseParameters returns the current ReleaseParameters of
this Schedulable.
|
Scheduler |
getScheduler()
getScheduler returns the current scheduler of this Schedulable.
|
SchedulingParameters |
getSchedulingParameters()
getSchedulingParameters returns the SchedulingParameters of this
Schedulable.
|
boolean |
removeFromFeasibility()
removeFromFeasibility informs the scheduler associated with this
Schedulable that this Schedulable should no longer be taken
into account in the feasibility analysis.
|
boolean |
setIfFeasible(ReleaseParameters release,
MemoryParameters memory)
setIfFeasible performs a feasibility analysis using the provided
release and memory parameters.
|
boolean |
setIfFeasible(ReleaseParameters release,
MemoryParameters memory,
ProcessingGroupParameters group)
setIfFeasible performs a feasibility analysis using the provided
release, memory, and processing group parameters.
|
boolean |
setIfFeasible(ReleaseParameters release,
ProcessingGroupParameters group)
setIfFeasible performs a feasibility analysis using the provided
release and processing group parameters.
|
boolean |
setIfFeasible(SchedulingParameters sched,
ReleaseParameters release,
MemoryParameters memory)
setIfFeasible performs a feasibility analysis using the provided
scheduling, release, and memory parameters.
|
boolean |
setIfFeasible(SchedulingParameters sched,
ReleaseParameters release,
MemoryParameters memory,
ProcessingGroupParameters group)
setIfFeasible performs a feasibility analysis using the provided
scheduling, release, memory, and processing group parameters.
|
Schedulable |
setMemoryParameters(MemoryParameters memory)
setMemoryParameters replaces the memory parameters for this
Schedulable with the parameters provided.
|
boolean |
setMemoryParametersIfFeasible(MemoryParameters memParam)
setMemoryParametersIfFeasible performs a feasibility analysis
using the provided memory parameters.
|
void |
setProcessingGroupParameters(ProcessingGroupParameters groupParameters)
setProcessingGroupParameters sets the processing group parameters
of this Scheduling.
|
boolean |
setProcessingGroupParametersIfFeasible(ProcessingGroupParameters groupParameters)
setProcessingGroupParametersIfFeasible performs a feasibility
analysis using the provided processing group parameters.
|
Schedulable |
setReleaseParameters(ReleaseParameters release)
setReleaseParameters replaces the release parameters for this
Schedulable with the parameters provided.
|
boolean |
setReleaseParametersIfFeasible(ReleaseParameters release)
setReleaseParametersIfFeasible performs a feasibility analysis
using the provided release parameters.
|
Schedulable |
setScheduler(Scheduler scheduler)
setScheduler sets the scheduler for this Schedulable.
|
void |
setScheduler(Scheduler scheduler,
SchedulingParameters scheduling,
ReleaseParameters release,
MemoryParameters memoryParameters,
ProcessingGroupParameters processingGroup)
setScheduler set the scheduler and scheduling, release, memory
and processing group parameters for this Schedulable.
|
Schedulable |
setSchedulingParameters(SchedulingParameters scheduling)
setSchedulingParameters sets the scheduling parameters for this
Schedulable.
|
boolean |
setSchedulingParametersIfFeasible(SchedulingParameters scheduling)
setSchedulingParametersIfFeasible performs a feasibility
analysis using the provided scheduling parameters.
|
getDispatcher
boolean addToFeasibility()
addToFeasibility notifies the scheduler associated with this that this schedulable object's scheduling, release, memory and processing group parameters take part in the feasibility analysis.
In case this schedulable object is already part of the feasiblility analysis, do nothing.
boolean addIfFeasible()
addIfFeasible adds this to the feasibility analysis of the associated scheduler if the resulting system will be feasible.
If the object is already included in the feasible set, do nothing.
boolean removeFromFeasibility()
MemoryParameters getMemoryParameters()
ReleaseParameters getReleaseParameters()
Scheduler getScheduler()
SchedulingParameters getSchedulingParameters()
ProcessingGroupParameters getProcessingGroupParameters()
Schedulable setMemoryParameters(MemoryParameters memory)
setMemoryParameters replaces the memory parameters for this Schedulable with the parameters provided.
This change may change the feasibility of the current feasible set of this Schedulable's scheduler.
In JamaicaVM, this change becomes effective immediately.
StaticIllegalArgumentException
- if the memory parameter value is
not compatible with the scheduler associated to this
Schedulable.IllegalAssignmentError
- if memory and this reside in
memory areas whose objects cannot refer to one another (in both
directions).memory
- the new memory parameters. If null, the default
value for the associated scheduler will be used.Schedulable setReleaseParameters(ReleaseParameters release)
setReleaseParameters replaces the release parameters for this Schedulable with the parameters provided.
This change may change the feasibility of the current feasible set of this Schedulable's scheduler.
In JamaicaVM, this change of periodic parameters becomes effective after the execution of the next period, i.e., on the next call to waitForNextPeriod or waitForNextPeriodInterruptible.
StaticIllegalArgumentException
- if the release parameter value
is not compatible with the scheduler associated to this
Schedulable.IllegalAssignmentError
- if release and this reside in
memory areas whose objects cannot refer to one another (in both
directions).IllegalThreadStateException
- If the old release parameters
are periodic, the new release parameters are not periodic, and the
schedulable object is currently blocked in
RealtimeThread.waitForNextPeriod or
RealtimeThread.waitForNextPeriodInterruptible.release
- the new release parameters. If null, the default
value for the associated scheduler will be used.Schedulable setScheduler(Scheduler scheduler)
setScheduler sets the scheduler for this Schedulable. If this has been admitted to the feasible set, it remains in the feasible set.
This change may change the feasibility of the current feasible set of this Schedulable's scheduler.
StaticIllegalArgumentException
- iff the scheduler is null or the
current parameters of this are not compatible with the new
scheduler.IllegalAssignmentError
- if scheduler and this reside in
memory areas whose objects cannot refer to one another (in both
directions).SecurityException
- if setting of the scheduler is not
allowed by the current RealtimeSystem setting.scheduler
- the new scheduler to be used. Must not be null.void setScheduler(Scheduler scheduler, SchedulingParameters scheduling, ReleaseParameters release, MemoryParameters memoryParameters, ProcessingGroupParameters processingGroup)
setScheduler set the scheduler and scheduling, release, memory and processing group parameters for this Schedulable.
The change of the scheduler and scheduling and memory parameters will be immediate for the default scheduler. release and processing group parameters will take effect on the next release.
This change may change the feasibility of the current feasible set of this Schedulable's scheduler.
StaticIllegalArgumentException
- when scheduler is null or the
scheduling, release, memory or processing group parameters are
not compatible with the scheduler.IllegalAssignmentError
- if scheduler, scheduling, release,
memory, or group reside in memory areas whose objects cannot be
referred to by this or this object resides in a memory area that
cannot be referenced by scheduling, release or memory.IllegalThreadStateException
- If the old release parameters
are periodic, the new release parameters are not periodic, and the
schedulable object is currently blocked in waitForNextPeriod or
waitForNextPeriodInterruptible.SecurityException
- if setting of the scheduler is not
allowed by the current RealtimeSystem setting.scheduler
- The scheduler to be used for this
Schedulable. Must not be null.scheduling
- SchedulingParameters to be associated with the
RealtimeThread. If null, the default value of the scheduler will
be used.release
- the new release parameters. If null, the default
value for the associated scheduler will be used.memoryParameters
- the new memory parameters. If null, the default
value for the associated scheduler will be used.processingGroup
- the new processing group parameters to be applied
for the next release of this. If null, the default value for
the scheduler will be used.Schedulable setSchedulingParameters(SchedulingParameters scheduling)
setSchedulingParameters sets the scheduling parameters for this Schedulable.
In JamaicaVM, this change of scheduling parameters becomes effective immediately for the default PriorityScheduler.
StaticIllegalArgumentException
- iff scheduling is not compatible
with the scheduler.IllegalAssignmentError
- if scheduling and this reside in
memory areas whose objects cannot refer to one another (in both
directions).scheduling
- the new scheduling parameters.void setProcessingGroupParameters(ProcessingGroupParameters groupParameters)
setProcessingGroupParameters sets the processing group parameters of this Scheduling.
In JamaicaVM, this change becomes effective immediately.
This change may change the feasibility of the current feasible set of this Schedulable's scheduler.
StaticIllegalArgumentException
- if the group argument is not
compatible with the scheduler of this RealtimeThread.groupParameters
- the new processing group parameters to be applied
for the next release of this. If null, use the default value for
the scheduler.boolean setProcessingGroupParametersIfFeasible(ProcessingGroupParameters groupParameters)
setProcessingGroupParametersIfFeasible performs a feasibility analysis using the provided processing group parameters. If the system remains feasible with these new parameters, parameters are replaced.
If this object is not a member of the feasible set of the scheduler and the resulting system is feasible, this will be added to the set.
StaticIllegalArgumentException
- if the group parameter value is
not compatible with the scheduler associated to this
Schedulable.IllegalAssignmentError
- If group and this reside in memory
areas whose objects cannot refer to one another (in both
directions).groupParameters
- the new processing group parameters. If null, the
default value for the associated scheduler will be used.boolean setSchedulingParametersIfFeasible(SchedulingParameters scheduling)
setSchedulingParametersIfFeasible performs a feasibility analysis using the provided scheduling parameters. If the system remains feasible with these new parameters, the scheduling parameters are replaced.
In JamaicaVM, this change of scheduling parameters becomes effective immediately for the default PriorityScheduler.
If this object is not a member of the feasible set of the scheduler and the resulting system is feasible, this will be added to the set.
StaticIllegalArgumentException
- if the parameter values are not
compatible with the scheduler associated to this Schedulable.IllegalAssignmentError
- if sched, release, memory, or group
and this reside in memory areas whose objects cannot refer to one
another (in both directions).scheduling
- the new scheduling parameters. If null, the
default value of the associated scheduler will be
used. This default value may be null.boolean setReleaseParametersIfFeasible(ReleaseParameters release)
setReleaseParametersIfFeasible performs a feasibility analysis using the provided release parameters. If the system remains feasible with the new parameters, the parameters are replaced.
If this object is not a member of the feasible set of the scheduler and the resulting system is feasible, this will be added to the set.
StaticIllegalArgumentException
- if the parameter values are not
compatible with the scheduler associated to this Schedulable.IllegalAssignmentError
- if release and this reside in
memory areas whose objects cannot refer to one another (in both
directions).IllegalThreadStateException
- If the old release parameters
are periodic, the new release parameters are not periodic, and the
schedulable object is currently blocked in waitForNextPeriod or
waitForNextPeriodInterruptible.release
- the new release parameters. If null, the default
value for the associated scheduler will be used.boolean setMemoryParametersIfFeasible(MemoryParameters memParam)
setMemoryParametersIfFeasible performs a feasibility analysis using the provided memory parameters. If the system remains feasible with the new memory parameters, the parameters are replaced.
In JamaicaVM, this change becomes effective immediately.
If this object is not a member of the feasible set of the scheduler and the resulting system is feasible, this will be added to the set.
StaticIllegalArgumentException
- if the memory parameter value is
not compatible with the scheduler associated to this
Schedulable.IllegalAssignmentError
- if memory and this reside in
memory areas whose objects cannot refer to one another (in both
directions).memParam
- the new memory parameters. If null, the default
value for the associated scheduler will be used.boolean setIfFeasible(ReleaseParameters release, MemoryParameters memory)
setIfFeasible performs a feasibility analysis using the provided release and memory parameters. If the system remains feasible with these new parameters, the parameters are replaced.
If this object is not a member of the feasible set of the scheduler and the resulting system is feasible, this will be added to the set.
StaticIllegalArgumentException
- if the parameter values are not
compatible with the scheduler associated to this Schedulable.IllegalAssignmentError
- if release or memory and this
reside in memory areas whose objects cannot refer to one another
(in both directions).IllegalThreadStateException
- If the old release parameters
are periodic, the new release parameters are not periodic, and the
schedulable object is currently blocked in waitForNextPeriod or
waitForNextPeriodInterruptible.release
- the new release parameters. If null, the default
value for the associated scheduler will be used.memory
- the new memory parameters. If null, the default
value for the associated scheduler will be used.boolean setIfFeasible(ReleaseParameters release, MemoryParameters memory, ProcessingGroupParameters group)
setIfFeasible performs a feasibility analysis using the provided release, memory, and processing group parameters. If the system remains feasible with these new parameters, the parameters are replaced.
If this object is not a member of the feasible set of the scheduler and the resulting system is feasible, this will be added to the set.
StaticIllegalArgumentException
- if the parameter values are not
compatible with the scheduler associated to this Schedulable.IllegalAssignmentError
- if release, memory, or group and
this reside in memory areas whose objects cannot refer to one
another (in both directions).IllegalThreadStateException
- If the old release parameters
are periodic, the new release parameters are not periodic, and the
schedulable object is currently blocked in waitForNextPeriod or
waitForNextPeriodInterruptible.release
- the new release parameters. If null, the default
value for the associated scheduler will be used.memory
- the new memory parameters. If null, the default
value for the associated scheduler will be used.group
- the new processing group parameters. If null, the
default value for the associated scheduler will be used.boolean setIfFeasible(ReleaseParameters release, ProcessingGroupParameters group)
setIfFeasible performs a feasibility analysis using the provided release and processing group parameters. If the system remains feasible with these new parameters, the parameters are replaced.
If this object is not a member of the feasible set of the scheduler and the resulting system is feasible, this will be added to the set.
StaticIllegalArgumentException
- if the parameter values are not
compatible with the scheduler associated to this Schedulable.IllegalAssignmentError
- if release or group and this
reside in memory areas whose objects cannot refer to one another
(in both directions).IllegalThreadStateException
- If the old release parameters
are periodic, the new release parameters are not periodic, and the
schedulable object is currently blocked in waitForNextPeriod or
waitForNextPeriodInterruptible.release
- the new release parameters. If null, the default
value for the associated scheduler will be used.group
- the new processing group parameters. If null, the
default value for the associated scheduler will be used.boolean setIfFeasible(SchedulingParameters sched, ReleaseParameters release, MemoryParameters memory)
setIfFeasible performs a feasibility analysis using the provided scheduling, release, and memory parameters. If the system remains feasible with these new parameters, the scheduling, release and memory parameters are replaced.
If this object is not a member of the feasible set of the scheduler and the resulting system is feasible, this will be added to the set.
StaticIllegalArgumentException
- if the parameter values are not
compatible with the scheduler associated to this Schedulable.IllegalAssignmentError
- if sched, release or memory and
this reside in memory areas whose objects cannot refer to one
another (in both directions).IllegalThreadStateException
- If the old release parameters
are periodic, the new release parameters are not periodic, and the
schedulable object is currently blocked in waitForNextPeriod or
waitForNextPeriodInterruptible.sched
- the new scheduling parameters. If null, the default
value for the associated scheduler will be used. This
default value may be null.release
- the new release parameters. If null, the default
value for the associated scheduler will be used.memory
- the new memory parameters. If null, the default
value for the associated scheduler will be used.boolean setIfFeasible(SchedulingParameters sched, ReleaseParameters release, MemoryParameters memory, ProcessingGroupParameters group)
setIfFeasible performs a feasibility analysis using the provided scheduling, release, memory, and processing group parameters. If the system remains feasible with these new parameters, the scheduling, release, memory and processing group parameters are replaced.
If this object is not a member of the feasible set of the scheduler and the resulting system is feasible, this will be added to the set.
StaticIllegalArgumentException
- if the parameter values are not
compatible with the scheduler associated to this Schedulable.IllegalAssignmentError
- if sched, release, memory or group
and this reside in memory areas whose objects cannot refer to one
another (in both directions).IllegalThreadStateException
- If the old release parameters
are periodic, the new release parameters are not periodic, and the
schedulable object is currently blocked in waitForNextPeriod or
waitForNextPeriodInterruptible.sched
- the new scheduling parameters. If null, the default
value for the associated scheduler will be used. This
default value may be null.release
- the new release parameters. If null, the default
value for the associated scheduler will be used.memory
- the new memory parameters. If null, the default
value for the associated scheduler will be used.group
- the new processing group parameters. If null, the
default value for the associated scheduler will be used.aicas GmbH, Karlsruhe, Germany —www.aicas.com
Copyright © 2001-2019 aicas GmbH. All Rights Reserved.