fr.dyade.aaa.agent
Class MessageSoftList

java.lang.Object
  extended by fr.dyade.aaa.agent.MessageSoftList

public class MessageSoftList
extends java.lang.Object

This class holds a list of Message, waiting to be sent. After sending one message it is marked as sent, which means it is kept until its acknowledgment. Once acknowledged, the message is deleted.
This list can hold an acknowledgment message, which is always the first one to be sent if present.
If the list is marked as persistent, messages are encapsulated by MessageSoftRef in order to be garbaged from memory if necessary.


Constructor Summary
MessageSoftList(java.lang.String name, boolean persistent)
           
 
Method Summary
 void addMessage(fr.dyade.aaa.agent.Message msg)
          Adds a message at the end of the list.
 void deleteMessagesUpTo(int stamp)
          Iterates over messages waiting for an acknowledge to delete the ones which have a stamp inferior or equal to the given one.
 fr.dyade.aaa.agent.Message getAck()
          Returns the acknowledge waiting to be sent if present.
 fr.dyade.aaa.agent.Message getFirst()
          Returns the first non expired message waiting to be sent.
 void reset()
          Resets all messages waiting for an acknowledge: they are placed back at the beginning of the list respecting their stamp order.
 int sentSize()
          Returns the number of messages waiting for an ack.
 void setAck(fr.dyade.aaa.agent.Message ack)
          Sets the next ack to send.
 void setSent(fr.dyade.aaa.agent.Message msg)
          Mark specified message as sent (ie waiting for an ack).
 java.util.Iterator toSendIterator()
          Returns an iterator over the messages waiting to be sent.
 int toSendSize()
          Returns the number of messages waiting to be sent.
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

MessageSoftList

public MessageSoftList(java.lang.String name,
                       boolean persistent)
Method Detail

addMessage

public void addMessage(fr.dyade.aaa.agent.Message msg)
Adds a message at the end of the list. Use setAck(Message) if you want to add an ack to the list.


getAck

public fr.dyade.aaa.agent.Message getAck()
Returns the acknowledge waiting to be sent if present.

Returns:
current acknowledge waiting to be sent, or null if there is none.

getFirst

public fr.dyade.aaa.agent.Message getFirst()
Returns the first non expired message waiting to be sent. It can be an acknowledge.

Returns:
the next message to send or null if there is none.

deleteMessagesUpTo

public void deleteMessagesUpTo(int stamp)
                        throws java.io.IOException
Iterates over messages waiting for an acknowledge to delete the ones which have a stamp inferior or equal to the given one.

Parameters:
stamp - the stamp of the last message acked.
Throws:
java.io.IOException

setAck

public void setAck(fr.dyade.aaa.agent.Message ack)
Sets the next ack to send.


toSendIterator

public java.util.Iterator toSendIterator()
Returns an iterator over the messages waiting to be sent.

Returns:
an iterator over the messages waiting to be sent.

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

reset

public void reset()
Resets all messages waiting for an acknowledge: they are placed back at the beginning of the list respecting their stamp order.


toSendSize

public int toSendSize()
Returns the number of messages waiting to be sent.

Returns:
the number of messages waiting to be sent.

setSent

public void setSent(fr.dyade.aaa.agent.Message msg)
Mark specified message as sent (ie waiting for an ack). The given message must be the next one to be sent, returned by getFirst().

Parameters:
msg - the message which have been sent.

sentSize

public int sentSize()
Returns the number of messages waiting for an ack.

Returns:
the number of messages waiting for an ack.


Copyright © 2011 ScalAgent D.T.. All Rights Reserved.