package com.limegroup.gnutella.bootstrap;
import java.io.IOException;
import java.io.Writer;
import java.util.Collection;
import com.limegroup.gnutella.Endpoint;
import com.limegroup.gnutella.ExtendedEndpoint;
public interface Bootstrapper extends Runnable {
/** Resets the bootstrapper to its initial state. */
void reset();
/** Adds a UHC to the bootstrapper, returning true if the UHC was added. */
boolean addUDPHostCache(ExtendedEndpoint ee);
/** Returns true if the bootstrapper needs to save its list of UHCs. */
boolean isWriteDirty();
/** Writes the bootstrapper's list of UHCs to the given writer. */
void write(Writer out) throws IOException;
static interface Listener {
/** Returns true if the listener needs hosts from the bootstrapper. */
boolean needsHosts();
/** Receives hosts from the bootstrapper, returning the number used. */
int handleHosts(Collection<? extends Endpoint> hosts);
}
}