bamboo.sim
Class EventQueue

java.lang.Object
  extended by bamboo.sim.EventQueue

public class EventQueue
extends Object

A really simple, and hopefully really fast, simulator core. The user can add nodes with a specified lifetime, register and cancel timer events, and nothing more. Timers that would go off after a node has been removed are ignored at registration time. Also, a cleanup function may be provided when adding a node; it will be called before the node is removed. Time is in microseconds.

Version:
$Id: EventQueue.java,v 1.8 2004/04/17 22:44:58 srhea Exp $
Author:
Sean C. Rhea

Nested Class Summary
static interface EventQueue.Callback
           
protected static class EventQueue.NodeInfo
           
protected static class EventQueue.TimerInfo
           
 
Field Summary
protected  Set cancelled_timers
           
protected  ostore.util.NodeId current_node_id
           
protected  PriorityQueue event_queue
           
protected  EventQueue.Callback failure_cb
           
protected static org.apache.log4j.Logger logger
           
protected  Map nodes_by_node_id
           
protected  long now_us
           
 
Constructor Summary
EventQueue()
           
 
Method Summary
 void add_node(ostore.util.NodeId node_id, long life_time_us, EventQueue.Callback cleanup_cb, Object user_data)
           
 void cancel_timer(Object token)
           
 ostore.util.NodeId current_node_id()
           
 long failure_time_us(ostore.util.NodeId node_id)
           
 long now_us()
           
 Object register_timer(long time_us, EventQueue.Callback cb, Object user_data)
           
 Object register_timer(ostore.util.NodeId node_id, long time_us, EventQueue.Callback cb, Object user_data)
           
 void run()
           
 void set_current_node_id(ostore.util.NodeId n)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

logger

protected static org.apache.log4j.Logger logger

nodes_by_node_id

protected Map nodes_by_node_id

cancelled_timers

protected Set cancelled_timers

event_queue

protected PriorityQueue event_queue

now_us

protected long now_us

current_node_id

protected ostore.util.NodeId current_node_id

failure_cb

protected EventQueue.Callback failure_cb
Constructor Detail

EventQueue

public EventQueue()
Method Detail

add_node

public void add_node(ostore.util.NodeId node_id,
                     long life_time_us,
                     EventQueue.Callback cleanup_cb,
                     Object user_data)

register_timer

public Object register_timer(long time_us,
                             EventQueue.Callback cb,
                             Object user_data)

register_timer

public Object register_timer(ostore.util.NodeId node_id,
                             long time_us,
                             EventQueue.Callback cb,
                             Object user_data)

cancel_timer

public void cancel_timer(Object token)

run

public void run()

failure_time_us

public long failure_time_us(ostore.util.NodeId node_id)

now_us

public long now_us()

current_node_id

public ostore.util.NodeId current_node_id()

set_current_node_id

public void set_current_node_id(ostore.util.NodeId n)