jist.swans.net
Class MessageQueue.NoDropMessageQueue

java.lang.Object
  extended by jist.swans.net.MessageQueue.NoDropMessageQueue
All Implemented Interfaces:
MessageQueue
Enclosing interface:
MessageQueue

public static class MessageQueue.NoDropMessageQueue
extends java.lang.Object
implements MessageQueue


Nested Class Summary
 
Nested classes/interfaces inherited from interface jist.swans.net.MessageQueue
MessageQueue.NoDropMessageQueue
 
Field Summary
private  byte capacity
          List size limit.
private  QueuedMessage[] heads
          Heads of message queues for different priorities.
private  byte size
          Length of list.
private  QueuedMessage[] tails
          Tails of message queues for different priorities.
private  byte topPri
          Index of highest priority.
 
Constructor Summary
MessageQueue.NoDropMessageQueue(byte priorities, byte capacity)
          Initialize prioritized message queue.
 
Method Summary
 QueuedMessage get()
          Return first message, but do not dequeue.
 QueuedMessage get(int pri)
          Return first message of given priority, but do not dequeue.
 int getPri()
          Return priority of first queued message.
 void insert(QueuedMessage msg)
          Insert message into queue at end (with lowest priority).
 void insert(QueuedMessage msg, int pri)
          Insert message into queue with given priority.
 boolean isEmpty()
          Return whether list is empty.
 boolean isFull()
          Return whether the list is filled to capacity.
 QueuedMessage remove()
          Return first message and dequeue.
 QueuedMessage remove(int pri)
          Return first message with given priority and dequeue.
 int size()
          Return number of items in the list.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

heads

private QueuedMessage[] heads
Heads of message queues for different priorities.


tails

private QueuedMessage[] tails
Tails of message queues for different priorities.


topPri

private byte topPri
Index of highest priority.


size

private byte size
Length of list.


capacity

private byte capacity
List size limit.

Constructor Detail

MessageQueue.NoDropMessageQueue

public MessageQueue.NoDropMessageQueue(byte priorities,
                                       byte capacity)
Initialize prioritized message queue.

Parameters:
priorities - number of priority levels
capacity - maximum number of items allowed in list
Method Detail

isEmpty

public boolean isEmpty()
Return whether list is empty.

Specified by:
isEmpty in interface MessageQueue
Returns:
whether list is empty

isFull

public boolean isFull()
Return whether the list is filled to capacity.

Specified by:
isFull in interface MessageQueue
Returns:
whether list is filled to capacity

size

public int size()
Return number of items in the list.

Specified by:
size in interface MessageQueue
Returns:
number of items in the list

insert

public void insert(QueuedMessage msg,
                   int pri)
Insert message into queue with given priority.

Specified by:
insert in interface MessageQueue
Parameters:
msg - message to insert
pri - message priority

insert

public void insert(QueuedMessage msg)
Insert message into queue at end (with lowest priority).

Specified by:
insert in interface MessageQueue
Parameters:
msg - message to insert

getPri

public int getPri()
Return priority of first queued message.

Specified by:
getPri in interface MessageQueue
Returns:
priority of first queued message

get

public QueuedMessage get(int pri)
Return first message of given priority, but do not dequeue.

Specified by:
get in interface MessageQueue
Parameters:
pri - priority of message requested
Returns:
message of given priority (not dequeued), or null if no such message exists

get

public QueuedMessage get()
Return first message, but do not dequeue.

Specified by:
get in interface MessageQueue
Returns:
first message (not dequeued)

remove

public QueuedMessage remove(int pri)
Return first message with given priority and dequeue.

Specified by:
remove in interface MessageQueue
Parameters:
pri - priority of message requested
Returns:
message of given priority

remove

public QueuedMessage remove()
Return first message and dequeue.

Specified by:
remove in interface MessageQueue
Returns:
first message in queue