modhelxs.simulation
Class DrivingClock<T extends java.lang.Comparable<T>>

java.lang.Object
  extended by tesl.Clock<T>
      extended by modhelxs.simulation.DrivingClock<T>
Type Parameters:
T - The type of the tags for this clock
Direct Known Subclasses:
ASAPClock, EventFeederClock, PeriodicRTClock, SynchronizingRTClock

public abstract class DrivingClock<T extends java.lang.Comparable<T>>
extends Clock<T>

A DrivingClock is a clock used for driving a simulation. Its ticks are created in response to external events.

Author:
boulange

Field Summary
private static java.util.List<DrivingClock<?>> drivingclocks_
          List of all driving clocks.
protected  Engine listener_
          The execution engine which is waiting on this clock.
 
Constructor Summary
DrivingClock(java.lang.String name, TagCalculus<T> tcalc)
          Build a new driving clock with name name.
 
Method Summary
abstract  void activate()
          Activate the clock: make it ready to produce a tick and notify the engine.
abstract  void cancel()
          Cancel the clock: stop waiting for the driving event.
static java.util.Collection<DrivingClock<?>> getDrivingClocks()
          Return the whole collection of driving clocks.
 void setListener(Engine e)
          Set the execution engine which is driven by this clock.
abstract  void wrapup()
          Release the ressources used by the clock, called at the end of the simulation.
 
Methods inherited from class tesl.Clock
affineTags, backup, cleanUp, createMasterImplication, createSlaveImplication, filteredImplies, getClockSet, getFirstTaggedTick, getFloatingTick, getName, getNowTick, getNumberOfTicks, getTag, getTagCalculus, getTagValue, getTick, getTick, getTick, getTicks, hasFloatingTick, hasTaggedTick, hasTickNow, hasTicks, implies, impliesThroughFilter, impliesWithDelay, impliesWithDelay, isGreedy, isNow, newTick, newTick, removeTick, removeTick, resetClock, restore, sameTags, setClockSet, setGreedy, setNow, setTag, setTagValue, sustains, sustains, tagDifference, tagProduct, tagQuotient, tagSum, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

drivingclocks_

private static java.util.List<DrivingClock<?>> drivingclocks_
List of all driving clocks.


listener_

protected Engine listener_
The execution engine which is waiting on this clock.

Constructor Detail

DrivingClock

public DrivingClock(java.lang.String name,
                    TagCalculus<T> tcalc)
Build a new driving clock with name name.

Method Detail

setListener

public void setListener(Engine e)
Set the execution engine which is driven by this clock.


activate

public abstract void activate()
Activate the clock: make it ready to produce a tick and notify the engine.


cancel

public abstract void cancel()
Cancel the clock: stop waiting for the driving event.


wrapup

public abstract void wrapup()
Release the ressources used by the clock, called at the end of the simulation.


getDrivingClocks

public static java.util.Collection<DrivingClock<?>> getDrivingClocks()
Return the whole collection of driving clocks.