package org.limewire.core.api.connection;
import java.beans.PropertyChangeListener;
import ca.odell.glazedlists.EventList;
/**
* Defines the interface for Gnutella connection management.
*/
public interface GnutellaConnectionManager {
public static final String CONNECTION_STRENGTH = "strength";
/**
* Adds the specified listener to the list that is notified when a
* property value is changed.
*/
public void addPropertyChangeListener(PropertyChangeListener listener);
/**
* Removes the specified listener from the list that is notified when a
* property value is changed.
*/
public void removePropertyChangeListener(PropertyChangeListener listener);
/**
* Returns true if we are connected to the Gnutella network.
*/
public boolean isConnected();
/**
* Returns true if the node is currently an ultrapeer.
*/
public boolean isUltrapeer();
/**
* Connects to the Gnutella network.
*/
public void connect();
/**
* Disconnects from the Gnutella network.
*/
public void disconnect();
/**
* Disconnects & reconnects to Gnutella.
*/
public void restart();
/**
* Returns the current strength of the Gnutella connections.
*/
public ConnectionStrength getConnectionStrength();
/**
* Returns the list of connections.
*/
public EventList<ConnectionItem> getConnectionList();
/**
* Removes the specified connection from the list.
*/
public void removeConnection(ConnectionItem item);
/**
* Attempts to establish a connection to the specified host and port.
*/
public void tryConnection(String hostname, int portnum, boolean useTLS);
}