## net.i2p.util
Class SimpleTimer

    java.lang.Object
      net.i2p.util.SimpleTimer

Direct Known Subclasses:
  FlushTimer, RetransmissionTimer

public class SimpleTimer
extends java.lang.Object

Simple event scheduler - toss an event on the queue and it gets fired at the appropriate time. The method that is fired however should NOT block (otherwise they b0rk the timer).

Nested Class Summary
`static interface` `SimpleTimer.TimedEvent` Simple interface for events to be queued up and notified on expiration

Constructor Summary
`protected` `SimpleTimer()`
`protected` `SimpleTimer(java.lang.String name)`

Method Summary
`void` `addEvent(SimpleTimer.TimedEvent event, long timeoutMs)` Queue up the given event to be fired no sooner than timeoutMs from now.
`void` `addEvent(SimpleTimer.TimedEvent event, long timeoutMs, boolean useEarliestTime)`
`static SimpleTimer` `getInstance()`
`boolean` `removeEvent(SimpleTimer.TimedEvent evt)`
`void` `reschedule(SimpleTimer.TimedEvent event, long timeoutMs)`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### SimpleTimer

    protected SimpleTimer()

### SimpleTimer

    protected SimpleTimer(java.lang.String name)

Method Detail

### getInstance

    public static SimpleTimer getInstance()

### reschedule

    public void reschedule(SimpleTimer.TimedEvent event,
                           long timeoutMs)

### addEvent

    public void addEvent(SimpleTimer.TimedEvent event,
                         long timeoutMs)

  Queue up the given event to be fired no sooner than timeoutMs from now. However, if this event is already scheduled, the event will be scheduled for the earlier of the two timeouts, which may be before this stated timeout. If this is not the desired behavior, call removeEvent first.

### addEvent

    public void addEvent(SimpleTimer.TimedEvent event,
                         long timeoutMs,
                         boolean useEarliestTime)

  Parameters:
    `useEarliestTime` - if its already scheduled, use the earlier of the two timeouts, else use the later

### removeEvent

    public boolean removeEvent(SimpleTimer.TimedEvent evt)