org.jgroups.stack
Class AckReceiverWindow
java.lang.Object
org.jgroups.stack.AckReceiverWindow
public class AckReceiverWindow
- extends java.lang.Object
Counterpart of AckSenderWindow. Simple FIFO buffer.
Every message received is ACK'ed (even duplicates) and added to a hashmap
keyed by seqno. The next seqno to be received is stored in next_to_remove
. When a message with
a seqno less than next_to_remove is received, it will be discarded. The remove()
method removes
and returns a message whose seqno is equal to next_to_remove, or null if not found.
Change May 28 2002 (bela): replaced TreeSet with HashMap. Keys do not need to be sorted, and adding a key to
a sorted set incurs overhead.
- Version:
- $Id: AckReceiverWindow.java,v 1.25.2.4 2008/06/04 15:02:52 belaban Exp $
- Author:
- Bela Ban
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
AckReceiverWindow
public AckReceiverWindow(long initial_seqno)
getLock
public java.util.concurrent.locks.ReentrantLock getLock()
add
public boolean add(long seqno,
Message msg)
- Adds a new message. Message cannot be null
- Returns:
- True if the message was added, false if not (e.g. duplicate, message was already present)
remove
public Message remove()
- Removes a message whose seqno is equal to
next_to_remove
, increments the latter.
Returns message that was removed, or null, if no message can be removed. Messages are thus
removed in order.
removeOOBMessage
public Message removeOOBMessage()
hasMessagesToRemove
public boolean hasMessagesToRemove()
reset
public void reset()
size
public int size()
toString
public java.lang.String toString()
- Overrides:
toString
in class java.lang.Object
printDetails
public java.lang.String printDetails()
Copyright © 1998-2008 Bela Ban. All Rights Reserved.