javax.realtime
Class PeriodicParameters

java.lang.Object
  |
  +--javax.realtime.ReleaseParameters
        |
        +--javax.realtime.PeriodicParameters

public class PeriodicParameters
extends ReleaseParameters

This release parameter indicates that the RealtimeThread.waitForNextPeriod() method on the associated Schedulable object will be unblocked at the start of each period. When a reference to a PeriodicParameters object is given as a parameter to a constructor the PeriodicParameters object becomes bound to the object being created. Changes to the values in the PeriodicParameters object affect the constructed object. If given to more than one constructor then changes to the values in the PeriodicParameters 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.


Constructor Summary
PeriodicParameters(HighResolutionTime start, RelativeTime period, RelativeTime cost, RelativeTime deadline, AsyncEventHandler overrunHandler, AsyncEventHandler missHandler)
          Create a PeriodicParameters object.
 
Method Summary
 RelativeTime getPeriod()
          Get the period.
 HighResolutionTime getStart()
          Get the start time.
 boolean setIfFeasible(RelativeTime period, RelativeTime cost, RelativeTime deadline)
          Returns true if, after considering the values of the parameters, the task set would still be feasible.
 void setPeriod(RelativeTime p)
          Set the period.
 void setStart(HighResolutionTime s)
          Set the start time.
 
Methods inherited from class javax.realtime.ReleaseParameters
getCost, getCostOverrunHandler, getDeadline, getDeadlineMissHandler, setCost, setCostOverrunHandler, setDeadline, setDeadlineMissHandler, setIfFeasible
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PeriodicParameters

public PeriodicParameters(HighResolutionTime start,
                          RelativeTime period,
                          RelativeTime cost,
                          RelativeTime deadline,
                          AsyncEventHandler overrunHandler,
                          AsyncEventHandler missHandler)
Create a PeriodicParameters object.
Parameters:
start - Time at which the first period begins. If a RelativeTime, this time is relative to the first time the schedulable object becomes schedulable (schedulable time) (e.g., when start() is called on a thread). If an AbsoluteTime and it is before the schedulable time, start is equivalent to the schedulable time.
period - The period is the interval between successive unblocks of RealtimeThread.waitForNextPeriod(). Must be greater than zero when entering feasibility analysis.
cost - Processing time per period. 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. 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. 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. For a minimum implementation for purposes of feasibility analysis, the deadline is equal to the period. Other implementations may use this parameter to compute execution eligibility. If null, deadline will equal the period.
overrunHandler - This handler is invoked if an invocation of the schedulable object exceeds cost in the given period. Not required for minimum implementation. If null, nothing happens on the overrun condition.
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 period,
                             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.

getStart

public HighResolutionTime getStart()
Get the start time.

setStart

public void setStart(HighResolutionTime s)
Set the start time.
Parameters:
start - Time at which the first period begins.

getPeriod

public RelativeTime getPeriod()
Get the period.

setPeriod

public void setPeriod(RelativeTime p)
Set the period.
Parameters:
period - The period is the interval between successive unblocks of RealtimeThread.waitForNextPeriod(). Also used in the feasibility analysis and admission control algorithms.