de.kosi.util
Interface DistributedList

All Superinterfaces:
java.rmi.Remote
All Known Implementing Classes:
DistributedListImpl

public interface DistributedList
extends java.rmi.Remote

Interface to a distributed list. The list consists only of a listener interface. The reason for this is to keep the list consistent at all times. In a multithreaded environment it cannot be guaranteed, that there is always a consistent view, when using events and a get(int i) method. Because of that, the listeners get an event containing all entries when they are registered with the list. After that they are notified of every change to the list.
The events contain references to the entries in the list. This means there are (almost) no problems with events not arriving in order (the only problem that might occur, is that an remove event arrives before the corresponing add event). A drawback of this approach is, that there may not be two entries for the same item. This way the list can be seen as an unordered set of items.
When an listener receives an add event, this can be because the an item has been added to the list, or because it has changed. When a call to a remote item fails, the item should be removed from the list.

ChangeLog:

 $Log: DistributedList.java,v $
 Revision 1.3  2001/06/08 15:27:33  tanni
 new foyer with a nice splitpane

 Revision 1.2  2001/06/04 14:21:10  jiriki
 Made source more comliant to coding guidelines.

 Revision 1.1.1.1  2001/04/29 18:05:19  jiriki
 Imported sources from zola.

 Revision 1.6  2001/02/19 23:21:17  wombat
 Added SSL Support, Implement DistributedListFilter

 Revision 1.5  2001/02/02 10:59:15  wombat
 Updated Documentationm

 Revision 1.4  2001/02/01 14:25:45  wombat
 Intoduced InvalidSessionException

 Revision 1.3  2001/01/31 15:08:19  wombat
 Updated documentation

 

Version:
$Revision: 1.3 $ ($Date: 2001/06/08 15:27:33 $)
Author:
Jan-Ole Janssen, Niklas Mehner, Pimo Sticher, Tanni, aber Iris nicht (die hat geschwänzt)

Method Summary
 void addDistributedListListener(DistributedListListener listener, DistributedListFilter filter)
          Add an event listener.
 void removeDistributedListListener(DistributedListListener listener)
          Remove an event listener.
 

Method Detail

addDistributedListListener

public void addDistributedListListener(DistributedListListener listener,
                                       DistributedListFilter filter)
                                throws java.rmi.RemoteException,
                                       InvalidSessionException
Add an event listener.
Parameters:
listener - the event listener.
filter - filter for that listener. Only entries, that are not filtered are send to the listener.
Throws:
java.rmi.RemoteException - when a RMI exception occurs.
InvalidSessionException - when not called from within a valid session context.

removeDistributedListListener

public void removeDistributedListListener(DistributedListListener listener)
                                   throws java.rmi.RemoteException
Remove an event listener.
Parameters:
listener - the event listener.
Throws:
java.rmi.RemoteException - when a RMI exception occurs.