package cute.dcute;
import java.util.Iterator;
import java.util.LinkedList;
/**
* .
* User: ksen
* Date: Oct 9, 2005
* Time: 3:09:40 PM
* To change this template use File | Settings | File Templates.
*/
public class ActorQueues {
private Actor actor;
private LinkedList q;
public ActorQueues(Actor actor) {
this.actor = actor;
q = new LinkedList();
}
public void addMessage(Actor from,int qid,Message m) {
boolean found = false;
MessageQueue messageQueue = null;
for (Iterator iterator = q.iterator(); !found && iterator.hasNext();) {
messageQueue = (MessageQueue) iterator.next();
if(messageQueue.equals(from,qid)){
found = true;
}
}
if(!found){
messageQueue = new MessageQueue(from,qid);
q.addLast(messageQueue);
}
messageQueue.addMessage(m);
/*
if(q.size()>1){
System.out.println("Actor has more than one queue");
}
*/
}
public Actor getActor() {
return actor;
}
public Message getAndRemove(int mid) {
Message ret = null;
MessageQueue mq = (MessageQueue)q.get(mid);
ret = (Message)mq.getAndRemove();
if(mq.isEmpty()){
q.remove(mid);
}
return ret;
}
public boolean isEmpty() {
return q.isEmpty();
}
public int size() {
return q.size();
}
public LinkedList getQ() {
return q;
}
}