javax.realtime
Class ReleaseParameters

java.lang.Object
  |
  +--javax.realtime.ReleaseParameters
Direct Known Subclasses:
AperiodicParameters, PeriodicParameters

public class ReleaseParameters
extends java.lang.Object

The abstract top-level class for release characteristics of threads. When a reference to a ReleaseParameters object is given as a parameter to a constructor, the ReleaseParameters object becomes bound to the object being created. Changes to the values in the ReleaseParameters object affect the constructed object. If given to more than one constructor, then changes to the values in the ReleaseParameters object affect all of the associated objects. Note that this is a one-to-many relationship and not a many-to-many.

Caution: This class is explicitly unsafe in multithreaded situations when it is being changed. No synchronization is done. It is assumed that users of this class who are mutating instances will be doing their own synchronization at a higher level.

Caution: The cost parameter time should be considered to be measured against the target platform.


Constructor Summary
protected ReleaseParameters()
           
protected ReleaseParameters(RelativeTime cost, RelativeTime deadline, AsyncEventHandler overrunHandler, AsyncEventHandler missHandler)
          Subclasses use this constructor to create a ReleaseParameters type object.
 
Method Summary
 RelativeTime getCost()
          Get the cost value.
 AsyncEventHandler getCostOverrunHandler()
          Get the cost overrun handler.
 RelativeTime getDeadline()
          Get the deadline.
 AsyncEventHandler getDeadlineMissHandler()
          Get the deadline miss handler.
 void setCost(RelativeTime cost)
          Set the cost value.
 void setCostOverrunHandler(AsyncEventHandler handler)
          Set the cost overrun handler.
 void setDeadline(RelativeTime deadline)
          Set the deadline value.
 void setDeadlineMissHandler(AsyncEventHandler handler)
          Set the deadline miss handler.
 boolean setIfFeasible(RelativeTime cost, RelativeTime deadline)
          Returns true if, after considering the values of the parameters, the task set would still be feasible.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ReleaseParameters

protected ReleaseParameters()

ReleaseParameters

protected ReleaseParameters(RelativeTime cost,
                            RelativeTime deadline,
                            AsyncEventHandler overrunHandler,
                            AsyncEventHandler missHandler)
Subclasses use this constructor to create a ReleaseParameters type object.
Parameters:
cost - Processing time units per interval. On implementations which can measure the amount of time a schedulable object is executed, this value is the maximum amount of time a schedulable object receives per interval. On implementations which cannot measure execution time, this value is used as a hint to the feasibility algorithm. On such systems it is not possible to determine when any particular object exceeds cost. Equivalent to RelativeTime(0,0) if null.
deadline - The latest permissible completion time measured from the release time of the associated invocation of the schedulable object. Changing the deadline might not take effect after the expiration of the current deadline. More detail provided in the subclasses.
overrunHandler - This handler is invoked if an invocation of the schedulable object exceeds cost. Not required for minimum implementation. If null, nothing happens on the overrun condition, and waitForNextPeriod returns false immediately and updates the start time for the next period.
missHandler - This handler is invoked if the run() method of the schedulable object is still executing after the deadline has passed. Although minimum implementations do not consider deadlines in feasibility calculations, they must recognize variable deadlines and invoke the miss handler as appropriate. If null, nothing happens on the miss deadline condition.
Method Detail

setIfFeasible

public boolean setIfFeasible(RelativeTime cost,
                             RelativeTime deadline)
Returns true if, after considering the values of the parameters, the task set would still be feasible. In this case the values of the parameters are changed. Returns false if, after considering the values of the parameters, the task set would not be feasible. In this case the values of the parameters are not changed.

getCost

public RelativeTime getCost()
Get the cost value.

getCostOverrunHandler

public AsyncEventHandler getCostOverrunHandler()
Get the cost overrun handler.

getDeadline

public RelativeTime getDeadline()
Get the deadline.

getDeadlineMissHandler

public AsyncEventHandler getDeadlineMissHandler()
Get the deadline miss handler.

setCost

public void setCost(RelativeTime cost)
Set the cost value.
Parameters:
cost - Processing time units per period or per minimum interarrival interval. On implementations which can measure the amount of time a schedulable object is executed, this value is the maximum amount of time a schedulable object receives per period or per minimum interarrival interval. On implementations which cannot measure execution time, this value is used as a hint to the feasibility algorithm. On such systems it is not possible to determine when any particular object exceeds or will exceed cost time units in a period or interval. Equivalent to RelativeTime(0,0) if null.

setCostOverrunHandler

public void setCostOverrunHandler(AsyncEventHandler handler)
Set the cost overrun handler.
Parameters:
handler - This handler is invoked if an invocation of the schedulable object exceeds cost. Not required for minimum implementation. See comments in setCost().

setDeadline

public void setDeadline(RelativeTime deadline)
Set the deadline value.
Parameters:
deadline - The latest permissible completion time measured from the release time of the associated invocation of the schedulable object. For a minimum implementation for purposes of feasibility analysis, the deadline is equal to the period or minimum interarrival interval. Other implementations may use this parameter to compute execution eligibility.

setDeadlineMissHandler

public void setDeadlineMissHandler(AsyncEventHandler handler)
Set the deadline miss handler.
Parameters:
handler - This handler is invoked if the run() method of the schedulable object is still executing after the deadline has passed. Although minimum implementations do not consider deadlines in feasibility calculations, they must recognize variable deadlines and invoke the miss handler as appropriate.