modhelxs.simulation
Class ASAPClock

java.lang.Object
  extended by tesl.Clock<T>
      extended by modhelxs.simulation.DrivingClock<Unit>
          extended by modhelxs.simulation.ASAPClock

public class ASAPClock
extends DrivingClock<Unit>

An ASAPClock is a kind of driving clock that always has a tick as soon as possible

Author:
boulange

Nested Class Summary
private  class ASAPClock.ASAPThread
          Thread used to notify the execution engine.
private  class ASAPClock.ClockBackup
           
 
Field Summary
private  ASAPClock.ASAPThread mythread_
           
 
Fields inherited from class modhelxs.simulation.DrivingClock
listener_
 
Constructor Summary
ASAPClock(java.lang.String name)
           
 
Method Summary
 void activate()
          Activate the clock: make it ready to produce a tick and notify the engine.
 ClockBackupInterface<Unit> backup()
           
 void cancel()
          Cancel the clock: stop waiting for the driving event.
 Tick<Unit> newTick()
          This clock should have only one tick, so we can't add new ones.
 void removeTick(int i)
          This clock should always have a tick, so we cannot remove its tick.
 void removeTick(Tick<Unit> tick)
          This clock should always have a tick, so we cannot remove its tick.
 void resetClock()
          This clock should always have a tick, so we cannot remove its tick.
 void restore(ClockBackupInterface<Unit> backup)
          This clock should have only one tick, so it cannot be restored.
 void wrapup()
          Release the ressources used by the clock, called at the end of the simulation.
 
Methods inherited from class modhelxs.simulation.DrivingClock
getDrivingClocks, setListener
 
Methods inherited from class tesl.Clock
affineTags, 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, 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

mythread_

private ASAPClock.ASAPThread mythread_
Constructor Detail

ASAPClock

public ASAPClock(java.lang.String name)
Method Detail

activate

public void activate()
Description copied from class: DrivingClock
Activate the clock: make it ready to produce a tick and notify the engine.

Specified by:
activate in class DrivingClock<Unit>

cancel

public void cancel()
Description copied from class: DrivingClock
Cancel the clock: stop waiting for the driving event.

Specified by:
cancel in class DrivingClock<Unit>

newTick

public Tick<Unit> newTick()
This clock should have only one tick, so we can't add new ones.

Overrides:
newTick in class Clock<Unit>

backup

public ClockBackupInterface<Unit> backup()
Overrides:
backup in class Clock<Unit>

restore

public void restore(ClockBackupInterface<Unit> backup)
This clock should have only one tick, so it cannot be restored.

Overrides:
restore in class Clock<Unit>

removeTick

public void removeTick(Tick<Unit> tick)
This clock should always have a tick, so we cannot remove its tick.

Overrides:
removeTick in class Clock<Unit>

removeTick

public void removeTick(int i)
This clock should always have a tick, so we cannot remove its tick.

Overrides:
removeTick in class Clock<Unit>

resetClock

public void resetClock()
This clock should always have a tick, so we cannot remove its tick.

Overrides:
resetClock in class Clock<Unit>

wrapup

public void wrapup()
Description copied from class: DrivingClock
Release the ressources used by the clock, called at the end of the simulation.

Specified by:
wrapup in class DrivingClock<Unit>