javax.realtime
Class ReleaseParameters

java.lang.Object
  extended byjavax.realtime.ReleaseParameters
Direct Known Subclasses:
AperiodicParameters, PeriodicParameters

public class ReleaseParameters
extends 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.

Author:
Angelo Corsaro

Field Summary
protected  RelativeTime cost
           
protected  RelativeTime deadline
           
protected  AsyncEventHandler missHandler
           
protected  AsyncEventHandler overrunHandler
           
 
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 value.
 AsyncEventHandler getDeadlineMissHandler()
          Get the deadline miss handler.
 void setCost(RelativeTime cost)
          Set the cost value.
 void setCostOverrunHandler(AsyncEventHandler handler)
          Set the cost cost overrun handler.
 void setDeadline(RelativeTime deadline)
          Set the deadline value.
 void setDeadlineMissHandler(AsyncEventHandler handler)
          Set the deadline handler miss.
 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
 

Field Detail

cost

protected RelativeTime cost

deadline

protected RelativeTime deadline

overrunHandler

protected AsyncEventHandler overrunHandler

missHandler

protected AsyncEventHandler missHandler
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

getCost

public RelativeTime getCost()
Get the cost value.

Returns:
the cost value.

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.

getDeadline

public RelativeTime getDeadline()
Get the deadline value.

Returns:
the new deadline value.

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.

getCostOverrunHandler

public AsyncEventHandler getCostOverrunHandler()
Get the cost overrun handler.

Returns:
the overrun handler.

setCostOverrunHandler

public void setCostOverrunHandler(AsyncEventHandler handler)
Set the cost 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() .

getDeadlineMissHandler

public AsyncEventHandler getDeadlineMissHandler()
Get the deadline miss handler.

Returns:
the deadline miss handler.

setDeadlineMissHandler

public void setDeadlineMissHandler(AsyncEventHandler handler)
Set the deadline handler miss.

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.

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.

Parameters:
cost - a RelativeTime value
deadline - a RelativeTime value
Returns:
a boolean value


jRate is developed and maintained by the jRate project development team.
Copyright (c) 2001-2005 Angelo Corsaro and Morgan Deters.