org.objectweb.dream.queue
Class BufferLIFOImpl

java.lang.Object
  extended by org.objectweb.dream.AbstractComponent
      extended by org.objectweb.dream.queue.AbstractBufferImpl
          extended by org.objectweb.dream.queue.BufferLIFOImpl
All Implemented Interfaces:
ContextualBindingController, NeedAsyncStartController, PrepareStopLifeCycleController, Loggable, BufferAdd, BufferAttributeController, BufferRemove, AttributeController, BindingController, LifeCycleController

public class BufferLIFOImpl
extends AbstractBufferImpl

A buffer in which stored messages are available to get or remove in the reverse order as they are added (Last In First Out).


Field Summary
protected  LinkedList<Message> messages
          The messages stored in this buffer, in adding order (FIFO).
 
Fields inherited from class org.objectweb.dream.queue.AbstractBufferImpl
availableMessagesCount, CLIENT_INTERFACE_NAMES, lock, maxCapacity, messageManagerItf, storedMessagesCount
 
Fields inherited from class org.objectweb.dream.AbstractComponent
bindingLogger, fcNeedAsyncStart, fcState, lifeCycleLogger, logger, weaveableC
 
Fields inherited from interface org.objectweb.dream.queue.BufferAdd
ITF_NAME
 
Fields inherited from interface org.objectweb.dream.queue.BufferRemove
ITF_NAME
 
Fields inherited from interface org.objectweb.fractal.api.control.LifeCycleController
STARTED, STOPPED
 
Constructor Summary
BufferLIFOImpl()
           
 
Method Summary
protected  void doAdd(Message message)
          Adds a message to the buffer.
protected  Message doGet()
          Gets a message from the buffer.
protected  Message doRemove()
          Removes a message from the buffer.
protected  Message doRemoveAll()
          Removes all the messages stored into the buffer.
 
Methods inherited from class org.objectweb.dream.queue.AbstractBufferImpl
add, availableSpace, bindFc, canAdd, get, getCurrentSize, getMaxCapacity, hasAvailableMessage, incrementAvailableMessagesCount, incrementStoredMessagesCount, listFc, remove, removeAll, setMaxCapacity, tryAdd, tryGet, tryRemove
 
Methods inherited from class org.objectweb.dream.AbstractComponent
beforeFirstStart, bindFc, getFcNeedAsyncStart, getFcState, initComponent, lookupFc, prepareStopFc, setLogger, startFc, stopFc, unbindFc
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

messages

protected LinkedList<Message> messages
The messages stored in this buffer, in adding order (FIFO).

Constructor Detail

BufferLIFOImpl

public BufferLIFOImpl()
Method Detail

doAdd

protected void doAdd(Message message)
Description copied from class: AbstractBufferImpl
Adds a message to the buffer. This method should not check if there is enough available space provided it has already been done in the AbstractBufferImpl.add(org.objectweb.dream.message.Message)method. The lockhas been acquired when this method is called.

Specified by:
doAdd in class AbstractBufferImpl
Parameters:
message - the message to be added.

doGet

protected Message doGet()
Description copied from class: AbstractBufferImpl
Gets a message from the buffer. This method should not check if there is a message available provided it has already been done in the AbstractBufferImpl.get() method. The lockhas been acquired when this method is called.

Specified by:
doGet in class AbstractBufferImpl
Returns:
a message.

doRemove

protected Message doRemove()
Description copied from class: AbstractBufferImpl
Removes a message from the buffer. This method should not check if there is a message available provided it has already been done in the AbstractBufferImpl.remove()method. The lockhas been acquired when this method is called.

Specified by:
doRemove in class AbstractBufferImpl
Returns:
a message.

doRemoveAll

protected Message doRemoveAll()
Description copied from class: AbstractBufferImpl
Removes all the messages stored into the buffer. The lockhas been acquired when this method is called.

Specified by:
doRemoveAll in class AbstractBufferImpl
Returns:
an aggregated message.


Copyright © 2003, 2005 - INRIA Rhone-Alpes - All Rights Reserved.