org.objectweb.dream.queue.keyed
Interface KeyedBufferRemove

All Known Implementing Classes:
AbstractBufferKeyedAddKeyedRemoveImpl, AbstractBufferKeyedRemoveImpl, BufferAscendingSequenceNumberKeyedAddKeyedRemoveImpl, BufferKeyChunkAddKeyedRemoveImpl, BufferKeyedAddKeyedRemoveImpl

public interface KeyedBufferRemove

This interface defines methods that must be implemented by a buffer to allow components to get or delete messages from it, according to the key associated with each message. Such an interface is used by consumers of messages.

Note 1: all the messages that are stored in a buffer are not always available for removal (e.g. when the buffer implements an ordering policy).

Note 2: buffer implementations MUST BE thread-safe .


Field Summary
static String ITF_NAME
          The commonly used name to refer to an interface with this signature.
 
Method Summary
 Message get(Object key)
          Gets the message from the buffer that is associated with the specified key object.
 Message remove(Object key)
          Removes the message from the buffer that is associated with the specified key object.
 Message removeAll()
          Removes all the available messages from the buffer.
 Message tryGet(Object key)
          Gets the message from the buffer that is associated with the specified key object.
 Message tryRemove(Object key)
          Removes the message from the buffer that is associated with the specified key object.
 

Field Detail

ITF_NAME

static final String ITF_NAME
The commonly used name to refer to an interface with this signature.

See Also:
Constant Field Values
Method Detail

get

Message get(Object key)
            throws InterruptedException
Gets the message from the buffer that is associated with the specified key object. This method blocks while no message associated with the specified key is available.

Parameters:
key - the key that is associated with the message to get.
Returns:
the message that is associated with the specified key; never null.
Throws:
InterruptedException - if it is interrupted while waiting for a message to be added.
See Also:
BufferRemove.get()

tryGet

Message tryGet(Object key)
Gets the message from the buffer that is associated with the specified key object. This method does not block.

Parameters:
key - the key that is associated with the message to get.
Returns:
the message that is associated with the specified key if there is one, null otherwise.
See Also:
BufferRemove.tryGet()

remove

Message remove(Object key)
               throws InterruptedException
Removes the message from the buffer that is associated with the specified key object. This method blocks while no message associated with the specified key is available.

Parameters:
key - the key that is associated with the message to be removed.
Returns:
the removed message that was associated with the specified key; never null.
Throws:
InterruptedException - if it is interrupted while waiting for a message to be added.
See Also:
BufferRemove.remove()

tryRemove

Message tryRemove(Object key)
Removes the message from the buffer that is associated with the specified key object. This method does not block.

Parameters:
key - the key that is associated with the message to be removed.
Returns:
the removed message that was associated with the specified key if there was one, null otherwise.
See Also:
BufferRemove.tryRemove()

removeAll

Message removeAll()
Removes all the available messages from the buffer. Messages are returned in an aggregated message. If no message has been removed, this method returns null. This method does not block.

Returns:
an aggregated message containing all the messages available from the buffer, or null if no message was available.
See Also:
BufferRemove.removeAll()


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