avrora.sim.clock
Class Clock

java.lang.Object
  extended byavrora.sim.clock.Clock
Direct Known Subclasses:
ClockPrescaler, DerivedClock, MainClock, SystemClock

public abstract class Clock
extends java.lang.Object

The Clock class represents a clock within the simulation. There is one main clock for the Simulator itself, and all other clocks, even if they are not physically derived off the same clock signal, are simulated by inserting events into the main clock.


Field Summary
protected  long hz
          The hz field stores the rate of this clock in cycles per second.
protected  java.lang.String name
          The name field stores the name of this clock as a string.
 
Constructor Summary
protected Clock(java.lang.String n, long hz)
           
 
Method Summary
abstract  long getCount()
          The getCount() method returns the number of clock cycles (ticks) that have elapsed for this clock.
 long getHZ()
          The getHZ() method returns the number of cycles per second at which this clock runs.
 java.lang.String getName()
          The getName() method returns the name of this clock source.
abstract  void insertEvent(Simulator.Event e, long cycles)
          The insertEvent() method inserts an event into the event queue of the clock with the specified delay in clock cycles.
abstract  void removeEvent(Simulator.Event e)
          The removeEvent() method removes an event from the event queue of the clock.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

hz

protected final long hz
The hz field stores the rate of this clock in cycles per second.


name

protected final java.lang.String name
The name field stores the name of this clock as a string.

Constructor Detail

Clock

protected Clock(java.lang.String n,
                long hz)
Method Detail

getHZ

public long getHZ()
The getHZ() method returns the number of cycles per second at which this clock runs.

Returns:
the number of cycles per second on this clock

getName

public java.lang.String getName()
The getName() method returns the name of this clock source. Each clock has a name, so that they can be indexed in the simulator.

Returns:
the name of the clock as a string

getCount

public abstract long getCount()
The getCount() method returns the number of clock cycles (ticks) that have elapsed for this clock.

Returns:
the number of elapsed time ticks in clock cycles

insertEvent

public abstract void insertEvent(Simulator.Event e,
                                 long cycles)
The insertEvent() method inserts an event into the event queue of the clock with the specified delay in clock cycles. The event will then be executed at the future time specified.

Parameters:
e - the event to be inserted
cycles - the number of cycles in the future at which to fire

removeEvent

public abstract void removeEvent(Simulator.Event e)
The removeEvent() method removes an event from the event queue of the clock. The comparison used is reference equality, not .equals().

Parameters:
e - the event to remove