package ibis.ipl.registry.central;
import ibis.ipl.impl.IbisIdentifier;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.util.List;
public interface MemberSet {
public int size();
public void add(Member member);
public Member remove(IbisIdentifier identifier);
public boolean contains(IbisIdentifier identifier);
public boolean contains(Member member);
public Member get(IbisIdentifier identifier);
//return a member from what identifier.name() returns (!= identifier.getID())
public Member get(String name);
public int getMinimumTime();
public Member getLeastRecentlySeen();
public Member get(int index);
public Member getRandom();
public Member[] getRandom(int size);
public Member[] asArray();
public void init(DataInputStream in) throws IOException;
public void writeTo(DataOutputStream out) throws IOException;
public List<Event> getJoinEvents();
public Member[] getChildren(IbisIdentifier ibis);
public Member[] getRootChildren();
}