package com.jbidwatcher.util.queue;
/*
* Copyright (c) 2000-2007, CyberFOX Software, Inc. All Rights Reserved.
*
* Developed by mrs (Morgan Schweers)
*/
import java.util.List;
/**
* Created by IntelliJ IDEA.
* User: mrs
* Date: May 10, 2005
* Time: 11:07:18 PM
*
*/
public class TimeQueue {
private Heap m_heap = new Heap(11);
public boolean erase(QObject tqo) {
return m_heap.erase(tqo);
}
public class QObject implements Comparable {
private long m_when;
private Object m_event;
public QObject(long when, Object o) {
m_when = when;
m_event = o;
}
public boolean less(QObject o) {
return m_when < o.m_when;
}
public Object getEvent() { return m_event; }
public int compareTo(Object o) {
QObject cmp = (QObject) o;
if(m_when < cmp.m_when) return -1;
if(m_when > cmp.m_when) return 1;
return 0;
}
public long getTime() {
return m_when;
}
}
public void addEvent(long when, Object o) {
m_heap.insert(new QObject(when, o));
}
public List getSorted() {
return m_heap.getSorted();
}
public List getUnsorted() {
return m_heap.getUnsorted();
}
public Object getAnyLessThan(long when) {
QObject cmp = (QObject)m_heap.peek();
if(cmp != null && cmp.m_when < when) {
cmp = (QObject)m_heap.extract();
return cmp.m_event;
}
return null;
}
}